如何根据R中的条件找到所有列的频率?
要根据条件找到所有列的条件频率,我们可以使用 for 循环,在该循环中,我们将定义每列的长度以及我们想要查找频率的条件。
例如,如果我们有一个名为 df 的数据框,并且我们想找到每列中大于 5 的值的数量,那么我们可以使用以下给定的命令 -
Columns <- vector()for(i in 1:ncol(df1)){
Columns[i]<-length(df1[df1[,i] >5 ,i])
}
Columns
示例 1
以下代码段创建了一个示例数据框 -
x1<-rpois(20,1)x2<-rpois(20,2)
x3<-rpois(20,3)
df1<-data.frame(x1,x2,x3)
df1
创建以下数据框 -
x1 x2 x31 1 1 1
2 0 1 3
3 1 3 3
4 2 4 2
5 1 2 1
6 0 7 0
7 1 1 2
8 2 1 3
9 0 6 1
10 0 5 3
11 2 1 4
12 2 2 10
13 1 1 4
14 1 2 3
15 0 2 2
16 0 2 3
17 0 1 3
18 0 4 4
19 0 4 6
20 3 1 3
如果列值大于 2,为了在 df1 的每一列中找到频率,请将以下代码添加到上述代码段中 -
Columns1 <- vector()输出结果for(i in 1:ncol(df1)){
+ Columns1[i]<-length(df1[df1[,i] >2 ,i])
+ }
Columns1
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -
[1] 1 7 13
示例 2
以下代码段创建了一个示例数据框 -
y1<-rnorm(20)y2<-rnorm(20)
y3<-rnorm(20)
df2<-data.frame(y1,y2,y3)
df2
创建以下数据框 -
y1 y2 y31 -0.7446072 0.2772768 -0.2099932
2 0.4497256 -1.5064792 -0.7166337
3 0.8316262 -1.0904581 0.5837854
4 -0.2955840 1.8329734 1.9440828
5 1.4989187 0.7655811 -1.7222717
6 1.6513081 -1.4800745 0.9092251
7 0.7703807 -1.3972957 -0.6070779
8 0.8522162 -0.3482059 -0.7727520
9 -0.8581488 1.6068537 -2.3097855
10 -0.6890322 1.8891767 -1.3816252
11 -0.2896339 1.9209137 0.5935030
12 -0.9241086 -2.0833818 0.7365296
13 -1.1093938 1.4950127 1.5394590
14 -0.1203023 -0.7265817 -0.1850344
15 -0.1747876 -0.3429473 0.9155441
16 0.2678002 -0.4080068 -0.5372238
17 0.1292888 0.8621264 -1.0343519
18 1.0656223 0.3492514 -1.8643609
19 -1.0106256 0.3237296 -0.3930171
20 0.7498458 -0.1454423 -1.2903053
如果列值大于 5,为了在 df2 的每一列中找到频率,请将以下代码添加到上述代码段中 -
Columns2<-vector()输出结果for(i in 1:ncol(df2)){
+ Columns2[i] <- length(df2[df2[,i]>0.5 ,i])
+ }
Columns2
如果您将上述所有给定的片段作为单个程序执行,它会生成以下输出 -
[1] 7 7 7
以上是 如何根据R中的条件找到所有列的频率? 的全部内容, 来源链接: utcz.com/z/327408.html