我想知道如果第 1 列的值低于第 2 列和第 3 列的值,如何删除行?
这是更新的虚拟数据集:
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)
head(data)
# id a b c
#1 a 10 40 10
#2 b 50 2 20
#3 c 8.91e-05 1 0
#4 d 60 10 40
#5 e 100 50 50
在上面的虚拟数据集中,我们可以看到例如:data$id“c”,a 列值低于“b”和“c”列。
条件删除后,这是预期的输出:
# id a b c
#1 b 50 2 20
#2 d 60 10 40
#3 e 100 50 50
如果可能的话,tidyverse 方法更受欢迎。谢谢。
最佳答案
另一种允许使用 if_any
进行动态选择的方法:
library(dplyr)
data |>
filter(if_any(b:c, ~ a >= .x))
# id a b c
#1 a 10 40 10
#2 b 50 2 20
#3 d 60 10 40
#4 e 100 50 50
关于r - 如果第 1 列值低于第 2 列和第 3 列值,如何删除行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76504324/