如何移除列a值同时小于列b和列c的行(偏好tidyverse实现)
用tidyverse移除指定条件的行
完整解决方案代码
library(tidyverse) # 构造你的数据集 c <- c(10, 20, 30, 40, 50) b <- c(40, 2, 40, 10, 50) a <- c(10, 50, 0.0000891, 60, 100) id <- c("a", "b", "c", "d", "e") data <- data.frame(id, a, b, c) # 过滤掉a同时小于b和c的行 filtered_data <- data %>% filter(!(a < b & a < c)) # 查看结果 filtered_data
逻辑说明
我们需要保留不满足a同时小于b和c的行,这里用filter()函数结合逻辑表达式实现:
!(a < b & a < c):取反“a小于b且a小于c”的条件,也就是保留不符合该条件的行- 等价写法:
filter(a >= b | a >= c),直接保留“a大于等于b”或“a大于等于c”的行,结果完全一致
运行结果
执行代码后得到的结果与你期望的输出一致:
id a b c 1 b 50 2 20 2 d 60 10 40 3 e 100 50 50
内容的提问来源于stack exchange,提问作者choij
相关产品推荐
相关产品推荐

