如何在 R 数据框中查找每列的值的对数(log10),其中某些列是分类变量?
如果 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
广告