如果R数据框中某些列是分类变量,如何查找各列中每个值的指数?
要查找R数据框中某些列为分类变量时每个值的指数,我们可以按照以下步骤进行:
首先,创建一个数据框。
然后,使用plyr包中的numcolwise函数来查找指数,即使某些列是分类变量。
示例
创建数据框
让我们创建一个如下所示的数据框:
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 6 63 2 low first 15 6 3 low first 49 75 4 medium second 29 86 5 low first 44 94 6 high second 5 27 7 low second 21 9 8 low second 30 35 9 low first 24 61 10 low second 33 31 11 low second 25 88 12 high second 38 55 13 low second 43 33 14 medium first 12 70 15 low second 2 62 16 high second 40 82 17 low first 13 57 18 low second 16 3 19 medium first 36 98 20 low second 50 36 21 high first 19 54 22 low first 9 81 23 low second 1 66 24 medium second 47 24 25 medium second 28 59
如果某些列是分类变量,则查找指数
使用plyr包中的numcolwise函数查找数据框df中数值列中每个值的指数:
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(exp)(df)
输出
Score Demand 1 1.171914e+16 1.112864e+36 2 4.034288e+02 7.200490e+10 3 9.496119e+19 9.253782e+29 4 3.185593e+16 1.171914e+16 5 1.957296e+11 8.223013e+36 6 9.744803e+09 5.184706e+21 7 6.565997e+07 4.424134e+05 8 4.424134e+05 1.957296e+11 9 2.718282e+00 2.581313e+20 10 3.269017e+06 1.041376e+23 11 7.896296e+13 5.459815e+01 12 2.648912e+10 1.506097e+35 13 1.446257e+12 2.353853e+17 14 4.851652e+08 2.904885e+13 15 2.980958e+03 3.269017e+06 16 3.493427e+19 1.739275e+18 17 1.784823e+08 7.016736e+20 18 1.096633e+03 6.076030e+37 19 1.285160e+19 1.338335e+42 20 2.146436e+14 4.851652e+08 21 1.627548e+05 4.923458e+41 22 3.584913e+09 1.811239e+41 23 2.581313e+20 2.688117e+43 24 5.459815e+01 2.202647e+04 25 5.184706e+21 2.293783e+27
广告