0

我有 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。有人能弄清楚我做错了什么吗?

4

1 回答 1

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))
}
于 2013-06-28T10:20:37.397 回答