如果列b和c的总和超过列a

时间:2016-06-29 07:49:50

标签: r

如何删除列b和c的总和超过a的值的所有行。

例如:第一行的列值为50.000,列b值= 30.000,列c值= 30.000。第一行中的列b + c = 60.000,大于列a,值为50.000,因此我想删除它。我怎么能在R?

这样做

我想对数据集中的所有行执行此操作。

2 个答案:

答案 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