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

要为 R 数据框中的分类变量创建频率列,我们可以通过使用 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 列创建频率列 -

示例

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

以上是 如何在 R 数据框中为分类变量创建频率列? 的全部内容, 来源链接: utcz.com/z/317411.html

回到顶部