我有一个数据集:
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
你也可以这样做:
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)