如果R数据框中某些列是分类变量,如何求列方差?
如果R数据框中某些列是分类变量,要查找列方差,我们可以按照以下步骤操作:
首先,创建一个数据框。
然后,使用plyr包中的numcolwise函数查找某些列为分类变量时的列方差。
示例
创建数据框
让我们创建一个如下所示的数据框:
Group<-sample(c("I","II","III","IV"),25,replace=TRUE) Num1<-sample(1:50,25) Num2<-sample(1:50,25) df1<-data.frame(Group,Num1,Num2) df1
输出
执行上述脚本后,将生成以下输出(由于随机化,此输出在您的系统上可能会有所不同):
Group Num1 Num2 1 II 11 11 2 III 29 45 3 II 2 5 4 IV 3 13 5 II 9 30 6 IV 40 18 7 III 22 20 8 IV 28 37 9 III 50 42 10 I 10 43 11 II 18 38 12 II 14 31 13 IV 1 19 14 IV 24 35 15 II 15 48 16 IV 36 12 17 IV 19 1 18 I 48 50 19 IV 43 7 20 III 26 15 21 I 35 46 22 III 39 34 23 IV 38 28 24 IV 23 8 25 I 32 47
如果某些列是分类变量,则查找列方差
使用plyr包中的numcolwise函数查找数据框df1中数值列的列方差:
Group<-sample(c("I","II","III","IV"),25,replace=TRUE) Num1<-sample(1:50,25) Num2<-sample(1:50,25) df1<-data.frame(Group,Num1,Num2) library(plyr) numcolwise(var)(df1)
输出
Num1 Num2 1 206.0833 242.8933
示例2
创建数据框
让我们创建一个如下所示的数据框:
Categories<-sample(c("First","Second","Third"),25,replace=TRUE) Score<-sample(1:10,25,replace=TRUE) Price<-sample(1:5,25,replace=TRUE) df2<-data.frame(Categories,Score,Price) df2
输出
执行上述脚本后,将生成以下输出(由于随机化,此输出在您的系统上可能会有所不同):
Categories Score Price 1 First 1 3 2 Third 5 3 3 Second 6 1 4 First 3 3 5 First 2 2 6 Second 2 4 7 Third 6 5 8 Third 7 4 9 Third 6 4 10 Second 7 4 11 First 7 4 12 Second 6 2 13 First 9 3 14 Second 8 5 15 Third 6 4 16 Third 2 5 17 First 10 1 18 First 1 5 19 Second 7 4 20 First 1 2 21 Third 10 3 22 Third 10 5 23 Second 8 3 24 Second 10 2 25 Second 9 1
如果某些列是分类变量,则查找列方差
使用plyr包中的numcolwise函数查找数据框df2中数值列的列方差:
Categories<-sample(c("First","Second","Third"),25,replace=TRUE) Score<-sample(1:10,25,replace=TRUE) Price<-sample(1:5,25,replace=TRUE) df2<-data.frame(Categories,Score,Price) library(plyr) numcolwise(var)(df2)
输出
Score Price 1 9.456667 1.71
广告