选择并删除r中的行

时间:2015-02-18 14:20:03

标签: r comparison

我有一个数据框df

pw pl
30 40
32 39
29 38
32 41
31 39
28 42
31 42

以及df的一部分名为subset

pw pl
29 38
32 41
31 39

我希望删除dfsubset中存在的所有行,以便df看起来像这样

pw pl
30 40
32 39
28 42
31 42

我该怎么做?

1 个答案:

答案 0 :(得分:1)

如果subset确实是df的子集,并且没有其他行被省略或添加到df,则使用行名称过滤将起作用。

xy <- data.frame(sub = rep(letters[1:3], 9), val = runif(9))
xy.sub <- xy[xy$sub %in% "b", ]

xy[!rownames(xy) %in% rownames(xy.sub), ]

要匹配多个列,您可以执行

xy[!(xy$val %in% xy.sub$val & xy$sub %in% xy.sub$sub), ] #notice the braces