使用dplyr的select if函数根据范围条件选择列

Wil*_*car 3 r dplyr

我有一个数据集:

 var1 <- c(333, 213, 456)
 var2 <- c(3, 10, 500)
 var3 <- c(356, 813, 856)
 var4 <- c("aaa", "bbb", "ccc")
 var5 <- c(589, 111, 989)

dataset <- data.frame(var1, var2, var3, var4, var5)
Run Code Online (Sandbox Code Playgroud)

我想根据值范围保留列:子集列的所有值必须在 99 到 1000 之间。

我试过的:

library (dplyr)
dataset2 <- dataset %>%
select_if(~.>99 & . <1000)
Run Code Online (Sandbox Code Playgroud)

我想要的是 :

数据集2:var1、var3、var 4

tmf*_*mnk 5

你也可以这样做:

dataset %>%
 select_if(~ is.numeric(.) && all(between(., 99, 1000)))

  var1 var3 var5
1  333  356  589
2  213  813  111
3  456  856  989
Run Code Online (Sandbox Code Playgroud)