我有4个数据帧,并且希望找到在任何其他数据帧中不存在某个列中的值的行。我写了这个函数:
#function to test presence of $Name in 3 other datasets
common <- function(a, b, c, d) {
is.B <- is.numeric(a$Name %in% b$Name) == 1
is.C <- is.numeric(a$Name %in% c$Name) == 1
is.D <- is.numeric(a$Name %in% d$Name) == 1
t <- as.numeric(is.B & is.C & is.D)
t
}
但是,输出总是t = 0.这意味着它告诉我任何数据集中都没有唯一的行,即使数据帧的行数非常不同。由于任何数据框中都没有重复的行,因此对于最大数据集中的至少某些行,我应该得到t = 1。有人能弄明白我错了吗?
答案 0 :(得分:1)
改写为:
common <- function(a, b, c, d)
{
Name <- a$Name
inB <- Name %in% b$Name
inC <- Name %in% c$Name
inD <- Name %in% d$Name
which(!(inB | inC | inD))
}