如果R数据框的任何列的值大于某个特定值,如何子集数据框的行?


如果R数据框的任何列的值大于某个特定值,要子集数据框的行,我们可以按照以下步骤操作:

  • 首先,创建一个数据框。
  • 然后,使用dplyr包的filter_all函数和any_vars函数来子集数据框的行,以获取任何列的值大于某个特定值的行。

创建数据框

让我们创建一个如下所示的数据框:

 在线演示

x1<-sample(1:10,20,replace=TRUE)
x2<-sample(1:20,20,replace=TRUE)
df<-data.frame(x1,x2)
df

执行上述脚本后,将生成以下输出(由于随机化,此输出将在您的系统上有所不同):

 x1 x2
1  5 7
2  2 4
3  5 17
4  2 9
5  8 18
6  8 16
7  9 14
8  1 10
9  7 12
10 4 20
11 7 19
12 9 8
13 7 15
14 1 12
15 8 10
16 3 14
17 5 2
18 5 7
19 2 8
20 7 15

子集数据框

加载dplyr包并使用filter_all函数和any_vars函数来子集数据框df的行,以获取所有列的值大于10的行:

x1<-sample(1:10,20,replace=TRUE)
x2<-sample(1:20,20,replace=TRUE)
df<-data.frame(x1,x2)
library(dplyr)
df %>% filter_all(any_vars(.>10))

输出

  x1 x2
1  5 17
2  8 18
3  8 16
4  9 14
5  7 12
6  4 20
7  7 19
8  7 15
9  1 12
10 3 14
11 7 15

更新于: 2021年8月13日

791 次查看

启动您的 职业生涯

通过完成课程获得认证

开始
广告