如果 R 数据框中的某些列属于分类,如何找到列中每个值的 log10?
r programmingserver side programmingprogramming更新于 2025/4/7 11:37:17
如果 R 数据框中的某些列属于分类,要找到每个值的 log10,我们可以按照以下步骤操作 −
首先,创建一个数据框。
然后,使用 plyr 包中的 numcolwise 函数找到 log10(如果某些列属于分类)。
示例
创建数据框
让我们创建一个数据框,如下所示 −
Level<-sample(c("low","medium","high"),25,replace=TRUE) Group<-sample(c("first","second"),25,replace=TRUE) Score<-sample(1:50,25) Demand<-sample(1:100,25) df<-data.frame(Level,Group,Score,Demand) df
输出
执行时,上述脚本将生成以下输出(由于随机化,此输出将因您的系统而异) −
Level Group Score Demand 1 low second 30 9 2 high first 42 48 3 medium first 14 88 4 high second 27 63 5 high first 37 97 6 medium first 38 39 7 high second 13 18 8 high first 16 14 9 low second 40 90 10 medium first 25 53 11 low second 48 78 12 high second 28 64 13 low first 22 32 14 medium first 1 31 15 high first 2 21 16 low second 17 26 17 high first 5 41 18 medium first 49 85 19 low second 45 29 20 low first 9 49 21 medium first 31 44 22 medium first 29 46 23 high second 10 36 24 low second 21 33 25 low second 35 40
如果某些列是分类的,则查找 log10
使用 plyr 包中的 numcolwise 函数查找数据框 df 中数值列中每个值的 log10 −
Level<-sample(c("low","medium","high"),25,replace=TRUE) Group<-sample(c("first","second"),25,replace=TRUE) Score<-sample(1:50,25) Demand<-sample(1:100,25) df<-data.frame(Level,Group,Score,Demand) library(plyr) numcolwise(log10)(df)
输出
Score Demand 1 1.2552725 1.851258 2 1.3424227 1.477121 3 1.6334685 1.041393 4 1.6020600 1.986772 5 1.6532125 1.944483 6 1.5910646 1.934498 7 1.5440680 1.897627 8 1.2787536 1.977724 9 1.4913617 1.857332 10 1.5051500 0.602060 11 1.5682017 1.505150 12 1.3979400 1.230449 13 0.8450980 1.681241 14 0.6989700 1.748188 15 1.6720979 0.903090 16 1.4623980 1.863323 17 1.0000000 1.799341 18 1.1139434 1.380211 19 1.5563025 1.982271 20 0.9542425 0.698970 21 0.7781513 1.633468 22 1.0413927 1.707570 23 1.5797836 1.792392 24 1.6901961 1.556303 25 1.6989700 1.806180