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 に答える