如果R数据框中某些列是分类的,如何找到列的标准差?


如果R数据框中某些列是分类的,要找到列的标准差,我们可以按照以下步骤操作:

  • 首先,创建一个数据框。

  • 然后,使用plyr包中的numcolwise函数来查找某些列为分类列时的列标准差。

示例1

创建数据框

让我们创建一个如下所示的数据框:

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  IV    30   18
2  III   26    1
3  II    38    6
4  II    37    7
5  II    49   22
6  I      7   47
7  II    34   23
8  III   23   44
9  IV    24   11
10 II    36   28
11 II    31   13
12 IV    27    8
13 I     22   20
14 IV    25   38
15 IV    44   15
16 III   43    5
17 I     21   29
18 III   40   48
19 I     46   41
20 IV     8   36
21 IV    20   27
22 III   16   24
23 II    15    9
24 I     48   30
25 IV     3   39

如果某些列是分类的,则查找列标准差

使用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(sd)(df1)

输出

    Num1    Num2
1 13.57424 14.9295

示例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  Second     10     5
2  Third       5     3
3  Second     10     4
4  Third       2     3
5  Third       1     1
6  First       4     2
7  First       6     3
8  Second      3     4
9  Second      2     4
10 Third       8     3
11 First       8     1
12 Second      8     3
13 First       2     2
14 First       5     1
15 First      10     3
16 Third       7     3
17 Second      4     2
18 Second      7     2
19 Second      2     5
20 First       5     1
21 Third      10     3
22 Second     10     4
23 Third       2     5
24 Third       4     3
25 First       3     4

如果某些列是分类的,则查找列标准差

使用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(sd)(df2)

输出

     Score    Price
1 3.006659 1.670329

更新于: 2021年11月8日

125 次查看

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告