如何找到基于行值的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 x3

1 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_LargerThan5

1 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_LessThan5

1 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 y2

1 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_50

1 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

回到顶部