如何在 R 数据框中基于多个数值列的条件筛选行?
如果我们想基于多个数值列创建一个数据框的子集,我们可以按照以下步骤操作:
- 创建数据框。
- 使用 dplyr 包的 filter 函数对数据框进行子集筛选。
创建数据框
让我们创建一个如下所示的数据框:
x1<-rnorm(20) x2<-rnorm(20) x3<-rnorm(20) df<-data.frame(x1,x2,x3) df
执行上述脚本后,将生成以下输出(由于随机化,此输出可能因系统而异):
x1 x2 x3 1 0.24608371 -1.67514259 1.56498827 2 -0.20224892 -0.39720395 0.59500832 3 0.17826481 -0.83163497 1.78149860 4 0.11038442 0.09988394 -1.14734732 5 0.22454610 0.17475117 -0.52450684 6 -0.48267933 0.42938131 -1.16455384 7 -0.21522654 0.70470856 -0.27026051 8 1.03643685 -1.41827019 2.37306776 9 -0.08207666 1.07401006 -0.46598763 10 0.57203386 0.19795135 -1.65466371 11 0.22204629 -1.11419199 -1.33215677 12 -0.10529923 1.11458884 2.10602322 13 1.27808674 0.22931036 0.45067492 14 -0.27898456 -0.15679337 0.50367422 15 -0.48424097 -0.75060607 0.33437543 16 -0.04662138 1.62810538 0.02225197 17 2.08021754 0.60111386 0.94291531 18 -0.38586764 0.91240768 -1.05151779 19 -2.00167901 1.98869632 1.22709542 20 -0.01869414 1.13392687 -0.37114340
对数据框进行子集筛选
加载 dplyr 包,如果所有列都大于 -0.5,则对 df 进行子集筛选:
library(dplyr) x1<-rnorm(20) x2<-rnorm(20) x3<-rnorm(20) df<-data.frame(x1,x2,x3) df %>% filter(x1>-0.5,x2>-0.5,x3>-0.5)
输出
x1 x2 x3 1 -0.20224892 -0.3972039 0.59500832 2 -0.21522654 0.7047086 -0.27026051 3 -0.08207666 1.0740101 -0.46598763 4 -0.10529923 1.1145888 2.10602322 5 1.27808674 0.2293104 0.45067492 6 -0.27898456 -0.1567934 0.50367422 7 -0.04662138 1.6281054 0.02225197 8 2.08021754 0.6011139 0.94291531 9 -0.01869414 1.1339269 -0.37114340
广告