如果所有列的值都大于某个值,如何对 R 数据框的行进行子集

如果所有列的值都大于某个值,要对 R 数据框的行进行子集化,我们可以按照以下步骤操作 -

  • 首先,创建一个数据框。

  • 然后,使用 dplyr 包的 filter_all 函数和 all_vars 函数为所有值大于某个值的列对数据帧的行进行子集化。

创建数据框

让我们创建一个数据框,如下所示 -

例子

x1<-rnorm(20)
x2<-rnorm(20)
x3<-rnorm(20)
df<-data.frame(x1,x2,x3)
df

执行时,上述脚本生成以下内容output(this output will vary on your system due to randomization)-

输出

      x1             x2       x3
1 -0.31376878 -0.12968316 0.8419411
2 -0.83862302 -1.55831805 0.5412468
3 -0.81062837 -0.28474741 0.9073120
4 -0.50831218 -0.62854883 -0.3554728
5 -0.02295662 -0.01396397 -0.3872239
6 0.53754325 -0.35212127 -1.0889800
7 0.15640887 0.13740119 1.0268027
8 -1.07725923 0.31228013 -0.1728887
9 -0.74389064 -1.27700154 -0.5637569
10 -0.18454349 -0.72006275 1.2916641
11 -0.02374880 -0.43866322 -0.2552326
12 0.36739652 -0.09626434 -0.3846456
13 -1.63167811 -1.78833172 -1.7815582
14 -0.12921857 -0.76465935 -1.0403800
15 0.36201061 0.85615242 -0.8595591
16 1.23294914 1.21579843 2.1846038
17 0.20417021 1.17202100 0.5694823
18 -1.36131961 -0.30325395 -0.6394704
19 0.47171837 -0.32342429 0.5026272
20 -2.04807109 1.16932268 -1.2727892

子集数据框

加载 dplyr 包并使用 filter_all 函数 all_vars 函数为所有值大于 -0.5 的列对数据框 df 的行进行子集化 -

例子

x1<-rnorm(20)
x2<-rnorm(20)
x3<-rnorm(20)
df<-data.frame(x1,x2,x3)
library(dplyr)
df %>% filter_all(all_vars(.>-0.5))

输出

         x1          x2       x3
1 -0.31376878 -0.12968316 0.8419411
2 -0.02295662 -0.01396397 -0.3872239
3 0.15640887 0.13740119 1.0268027
4 -0.02374880 -0.43866322 -0.2552326
5 0.36739652 -0.09626434 -0.3846456
6 1.23294914 1.21579843 2.1846038
7 0.20417021 1.17202100 0.5694823
8 0.47171837 -0.32342429 0.5026272

猜你喜欢