如何在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 x51 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_Ones1 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 y41 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_Ones1 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