我有一个数据框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
我希望删除df
中subset
中存在的所有行,以便df
看起来像这样
pw pl
30 40
32 39
28 42
31 42
我该怎么做?
答案 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