如何在R数据帧的行中找到特定值的频率?

要在 R 数据帧的行中找到特定值的频率,我们可以使用 dplyr 包的 mutate 函数和 rowSums 函数。

例如,如果我们有一个名为 df 的数据框,那么我们可以使用以下命令找到 df 每一行中 5 的数量 -

df%>%mutate(Number_of_Fives=rowSums(.==1))

示例 1

以下代码段创建了一个示例数据框 -

x1<-rpois(20,1)

x2<-rpois(20,1)

x3<-rpois(20,1)

x4<-rpois(20,1)

x5<-rpois(20,1)

df1<-data.frame(x1,x2,x3,x4,x5)

df1

创建以下数据框 -

  x1 x2 x3 x4 x5

1  1 0  0  1  1

2  0 0  0  1  2

3  1 2  4  0  0

4  1 2  1  0  3

5  3 3  1  2  2

6  2 2  2  1  3

7  1 0  0  2  0

8  4 3  3  3  0

9  1 1  1  0  0

10 2 1  1  2  1

11 1 2  0  1  0

12 1 2  3  1  1

13 1 1  4  0  2

14 0 1  1  3  2

15 1 0  1  0  1

16 1 3  0  1  2

17 1 0  2  1  1

18 2 0  0  0  1

19 0 1  0  0  0

20 0 0  0  0  0

要加载 dplyr 包并找到 df1 每一行中的数量,请将以下代码添加到上述代码段中 -

library(dplyr)

df1%>%mutate(Number_of_Ones=rowSums(.==1))

输出结果

如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -

   x1 x2 x3 x4 x5 Number_of_Ones

1  1  0  0  1  1   3

2  0  0  0  1  2   1

3  1  2  4  0  0   1

4  1  2  1  0  3   2

5  3  3  1  2  2   1

6  2  2  2  1  3   1

7  1  0  0  2  0   1

8  4  3  3  3  0   0

9  1  1  1  0  0   3

10 2  1  1  2  1   3

11 1  2  0  1  0   2

12 1  2  3  1  1   3

13 1  1  4  0  2   2

14 0  1  1  3  2   2

15 1  0  1  0  1   3

16 1  3  0  1  2   2

17 1  0  2  1  1   3

18 2  0  0  0  1   1

19 0  1  0  0  0   1

20 0  0  0  0  0   0

示例 2

以下代码段创建了一个示例数据框 -

y1<-sample(1:3,20,replace=TRUE)

y2<-sample(1:3,20,replace=TRUE)

y3<-sample(1:3,20,replace=TRUE)

y4<-sample(1:3,20,replace=TRUE)

df2<-data.frame(y1,y2,y3,y4)

df2

创建以下数据框 -

   y1 y2 y3 y4

1  2  1  2  1

2  2  3  1  1

3  3  1  2  2

4  3  1  1  1

5  3  1  3  2

6  2  3  2  2

7  1  3  1  1

8  1  2  1  2

9  1  2  3  3

10 2  3  3  2

11 3  1  1  2

12 3  2  1  1

13 2  2  2  3

14 2  1  2  2

15 1  2  1  2

16 3  3  2  3

17 1  2  3  3

18 3  3  3  3

19 2  1  2  2

20 1  1  2  1

要查找 df2 的每一行中的数量,请将以下代码添加到上面的代码段中 -

df2%>%mutate(Number_of_Ones=rowSums(.==1))
输出结果

如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -

   y1 y2 y3 y4 Number_of_Ones

1  2  1  2  1   2

2  2  3  1  1   2

3  3  1  2  2   1

4  3  1  1  1   3

5  3  1  3  2   1

6  2  3  2  2   0

7  1  3  1  1   3

8  1  2  1  2   2

9  1  2  3  3   1

10 2  3  3  2   0

11 3  1  1  2   2

12 3  2  1  1   2

13 2  2  2  3   0

14 2  1  2  2   1

15 1  2  1  2   2

16 3  3  2  3   0

17 1  2  3  3   1

18 3  3  3  3   0

19 2  1  2  2   1

20 1  1  2  1   3

以上是 如何在R数据帧的行中找到特定值的频率? 的全部内容, 来源链接: utcz.com/z/331665.html

回到顶部