如何在 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 的每一行中查找 1 的数量,请将以下代码添加到上述代码片段中:

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 的每一行中 1 的数量,请将以下代码添加到上述代码片段中:

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

更新于: 2021-11-09

975 次浏览

启动您的 职业生涯

通过完成课程获得认证

开始
广告

© . All rights reserved.