如何在 R 数据框中为分类变量创建频率列?
要为 R 数据框中的分类变量创建频率列,我们可以通过使用 ave 函数定义分类变量的长度来使用变换函数。输出将具有重复的频率,因为分类列中的一个值可能会重复。查看以下示例以了解如何完成。
示例
考虑以下数据框 -
Country<-sample(c("India","China","Egypt"),20,replace=TRUE)输出结果Response<-rnorm(20)
df1<-data.frame(Country,Response)
df1
Country Response1 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 列创建频率列 -
示例
transform(df1,Country_Frequency=ave(seq(nrow(df1)),Country,FUN=length))输出结果
Country Response Country_Frequency1 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 Y1 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_Frequency1 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
以上是 如何在 R 数据框中为分类变量创建频率列? 的全部内容, 来源链接: utcz.com/z/317411.html