【发布时间】:2012-02-07 06:39:18
【问题描述】:
我有 2 个数据集。一个是父数据集(A),另一个是它的子集(B)。我想从 A 创建一个不包含 B 行的数据集。它应该类似于
C=A-B
数据集 A 和 B 的列数和列名相同。
【问题讨论】:
标签: r dataset subtraction
我有 2 个数据集。一个是父数据集(A),另一个是它的子集(B)。我想从 A 创建一个不包含 B 行的数据集。它应该类似于
C=A-B
数据集 A 和 B 的列数和列名相同。
【问题讨论】:
标签: r dataset subtraction
如果 B 是 A 的实际 subset,则可以在 rownames 上使用 setdiff:
sset <- subset(mtcars,cyl==4)
mtcars[setdiff(rownames(mtcars),rownames(sset)),]
【讨论】:
check.names = FALSE)。
如果您不想将其转换为字符串进行比较,即做完全匹配 你可以试试这个
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)}))}),]
【讨论】:
类似以下的方法可能会奏效:
C <- A[!(apply(A, 1, toString) %in% apply(B, 1, toString)), ]
【讨论】: