繁体   English   中英

在R中两个以上数据帧之间查找公用行的功能

[英]function to find common rows between more than two data frames in R

我有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。 有人可以找出我做错了什么吗?

改写:

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))
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM