我有2个数据集。一个是父数据集(A),另一个是它的子集(B)。我想从A创建一个不包含B行的数据集。它应该像
C = A-B
数据集A和B都具有相同数量的列和列名称。
答案 0 :(得分:8)
如果B是A的实际subset
,您可以setdiff
使用rownames
:
sset <- subset(mtcars,cyl==4)
mtcars[setdiff(rownames(mtcars),rownames(sset)),]
答案 1 :(得分:1)
如果您不想将其转换为字符串进行比较,即完全匹配 你可以尝试一下
a <- data.frame(t(matrix(1:12,3,4)))
b <- data.frame(t(matrix(7:21,3,5)))
a[!apply(a,1,FUN=function(y){any(apply(b,1,FUN=function(x){all(x==y)}))}),]
答案 2 :(得分:0)
以下内容可能会起到作用:
C <- A[!(apply(A, 1, toString) %in% apply(B, 1, toString)), ]