如何删除列b和c的总和超过a的值的所有行。
例如:第一行的列值为50.000,列b值= 30.000,列c值= 30.000。第一行中的列b + c = 60.000,大于列a,值为50.000,因此我想删除它。我怎么能在R?
这样做我想对数据集中的所有行执行此操作。
答案 0 :(得分:0)
我们可以通过对列'b'和'c'求和来创建逻辑条件,检查输出是否小于或等于'a'并使用该逻辑向量对行进行子集化。
df[with(df, (b + c) <= a),]
# a b c
#2 70 20 30
注意:结果基于OP的描述。这是不必要的贬低。
df <- data.frame(a = c(50, 70), b = c(30, 20), c = c(30, 30))
答案 1 :(得分:0)
您还可以尝试filter
包中的dplyr
动词/函数。
library(dplyr)
df<-data.frame(a=c(50,40),b=c(30,10),c=c(30,20))
# a b c
# 1 50 30 30
# 2 40 10 20
df %>% filter(b+c<=a)
# a b c
# 1 40 10 20