如何找到基于行值的R数据帧满足条件的列数?
有时我们想从数据帧中提取计数,该计数可能是基于行值具有相同特征的列数。例如,如果我们有一个包含三列和五十行的数据框,并且值是1到100之间的整数,那么我们可能想要查找每行的值大于20的列数。这可以通过使用rowSums函数来完成。
示例
请看以下数据帧-
> x1<-sample(1:10,20,replace=TRUE)> x2<-sample(1:100,20)
> x3<-rpois(20,5)
> df<-data.frame(x1,x2,x3)
> df
输出结果
x1 x2 x31 9 72 9
2 5 20 6
3 3 82 4
4 5 47 4
5 1 45 10
6 6 14 6
7 10 54 7
8 10 13 6
9 4 98 5
10 4 76 5
11 5 53 5
12 9 87 2
13 3 79 6
14 2 73 5
15 10 75 3
16 1 7 2
17 5 92 7
18 5 34 5
19 9 52 5
20 5 43 4
将新列添加到df中,其中数字列的值大于5-
示例
> df$Number_of_columns_LargerThan5<-rowSums(df>5)> df
输出结果
x1 x2 x3 Number_of_columns_LargerThan51 9 72 9 3
2 5 20 6 2
3 3 82 4 1
4 5 47 4 1
5 1 45 10 2
6 6 14 6 3
7 10 54 7 3
8 10 13 6 3
9 4 98 5 1
10 4 76 5 1
11 5 53 5 1
12 9 87 2 2
13 3 79 6 2
14 2 73 5 1
15 10 75 3 2
16 1 7 2 1
17 5 92 7 2
18 5 34 5 1
19 9 52 5 2
20 5 43 4 1
将数值小于5的数字列添加到df中的新列-
示例
> df$Number_of_columns_LessThan5<-rowSums(df<5)> df
输出结果
x1 x2 x3 Number_of_columns_LargerThan5 Number_of_columns_LessThan51 9 72 9 3 1
2 5 20 6 2 1
3 3 82 4 1 3
4 5 47 4 1 2
5 1 45 10 2 2
6 6 14 6 3 1
7 10 54 7 3 1
8 10 13 6 3 1
9 4 98 5 1 2
10 4 76 5 1 2
11 5 53 5 1 1
12 9 87 2 2 2
13 3 79 6 2 2
14 2 73 5 1 2
15 10 75 3 2 2
16 1 7 2 1 3
17 5 92 7 2 1
18 5 34 5 1 1
19 9 52 5 2 1
20 5 43 4 1 2
让我们看另一个例子-
示例
> y1<-sample(1:100,20)> y2<-sample(1:1000,20)
> df_y<-data.frame(y1,y2)
> df_y
输出结果
y1 y21 33 663
2 20 523
3 24 791
4 100 330
5 48 264
6 32 579
7 56 51
8 94 57
9 76 711
10 58 411
11 49 849
12 63 805
13 67 696
14 1 237
15 11 147
16 12 448
17 75 465
18 65 220
19 99 958
20 34 909
> df_y$Number_of_columns_less_than_equalto_50<-rowSums(df_y<=50)> df_y
输出结果
y1 y2 Number_of_columns_less_than_equalto_501 33 663 1
2 20 523 1
3 24 791 1
4 100 330 0
5 48 264 1
6 32 579 1
7 56 51 0
8 94 57 0
9 76 711 0
10 58 411 0
11 49 849 1
12 63 805 0
13 67 696 0
14 1 237 1
15 11 147 1
16 12 448 1
17 75 465 0
18 65 220 0
19 99 958 0
20 34 909 1
以上是 如何找到基于行值的R数据帧满足条件的列数? 的全部内容, 来源链接: utcz.com/z/343304.html