根据两个条件过滤R中的数据?

时间:2014-02-26 20:54:48

标签: r

我试图根据两个条件 - 治疗和深度从R中排除一些数据。我想摆脱P和PF trt中的数据,但只有5厘米的深度。我试过了

df<-df[df$trt != "P" & df$depth != "5",]

但这可以消除P治疗中的所有东西以及5厘米深处的一切。我只是打算再做一次以摆脱其他trt PF。

df<-df[df$trt != "PF" & df$depth != "5",]

我用什么来指定排除需要一起发生?

以下是我的数据示例:

trt depth mass
P    5    3
P    15   4
P    30   2
P    45   3
PF   5    2
PF   15   5
PF   30   2
CC   5    2
CC   15   3
CW   5    2
CW   15   4
CL   5    4
CL   30   2

1 个答案:

答案 0 :(得分:2)

这是一个逻辑错误,而不是R错误。如果你想摆脱两个条件都存在的数据,你想要

df<-df[!(df$trt %in% c("P","PF") & df$depth == "5"),]

等价地,

df<-df[!(df$trt %in% c("P","PF") | df$depth != "5"),]