如何在R数据框中为分类变量创建频数列?


为了在R数据框中为分类变量创建频数列,我们可以使用`transform`函数,通过`ave`函数定义分类变量的长度。输出将包含重复的频数,因为分类列中的一个值可能重复出现。查看下面的示例以了解如何操作。

示例

考虑下面的数据框:

 在线演示

Country<-sample(c("India","China","Egypt"),20,replace=TRUE)
Response<-rnorm(20)
df1<-data.frame(Country,Response)
df1

输出

   Country  Response
1  Egypt   -0.6591480
2  China   -1.8163343
3  India   -1.0608470
4  Egypt    0.6736968
5  Egypt    0.7686130
6  India   -0.5509014
7  Egypt   -1.4049758
8  India   -0.1783958
9  China   -0.3233439
10 China    0.5749841
11 China    0.3870373
12 China   -0.9342403
13 China    0.2300502
14 Egypt   -0.4034456
15 Egypt   -0.5925468
16 India   -1.0564102
17 India    0.1227065
18 China    1.7980140
19 China   -1.3700720
20 India    0.9327951

为df1中的Country列创建频数列:

Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.

示例

transform(df1,Country_Frequency=ave(seq(nrow(df1)),Country,FUN=length))

输出

  Country Response   Country_Frequency
1 Egypt   -0.6591480   6
2 China   -1.8163343   8
3 India   -1.0608470   6
4 Egypt    0.6736968   6
5 Egypt    0.7686130   6
6 India   -0.5509014   6
7 Egypt   -1.4049758   6
8 India   -0.1783958   6
9 China   -0.3233439   8
10 China   0.5749841   8
11 China   0.3870373   8
12 China  -0.9342403   8
13 China   0.2300502   8
14 Egypt  -0.4034456   6
15 Egypt  -0.5925468   6
16 India  -1.0564102   6
17 India   0.1227065   6
18 China   1.7980140   8
19 China  -1.3700720   8
20 India   0.9327951   6

示例

 在线演示

Temp<-sample(c("Hot","Cold"),20,replace=TRUE)
Y<-rpois(20,2)
df2<-data.frame(Temp,Y)
df2

输出

   Temp   Y
1  Cold   1
2  Hot    1
3  Cold   4
4  Hot    1
5  Hot    2  
6  Hot    4
7  Hot    1
8  Hot    1
9  Cold   2
10 Hot    1
11 Cold   1
12 Hot    2
13 Hot    3
14 Cold   2
15 Cold   0
16 Cold   4
17 Hot    4
18 Hot    0
19 Cold   1
20 Cold   1

为df2中的Temp列创建频数列:

示例

transform(df2,Temp_Frequency=ave(seq(nrow(df2)),Temp,FUN=length))

输出

  Temp   Y  Temp_Frequency
1  Cold  1   9
2  Hot   1  11
3  Cold  4   9
4  Hot   1  11
5  Hot   2  11
6  Hot   4  11
7  Hot   1  11
8  Hot   1  11
9  Cold  2   9
10 Hot  1   11
11 Cold 1    9
12 Hot  2   11
13 Hot  3   11
14 Cold 2    9
15 Cold 0    9
16 Cold 4    9
17 Hot  4   11
18 Hot  0   11
19 Cold 1    9
20 Cold 1    9

更新于:2021年3月16日

5K+ 次浏览

开启您的职业生涯

完成课程获得认证

开始学习
广告