我有一个不同数据框的列表,只是一个通用示例:
x <- data_frame(i = c("a","b","c"), j = 1:3)
y <- data_frame(i = c("b","c","d"), k = 4:6)
z <- data_frame(i = c("c","d","a"), l = 7:9)
list(x,y,z)
我想找到不同夫妻(xy,yz,xz)和xyz中常见的行,以及x,y,z中唯一的行。
我想找到一些快速编码方法。
我在这里读了其他帖子,我在类似的问题中找到了这个:
list(x,y,z) %>%
Reduce(function(dtf1,dtf2) left_join(dtf1,dtf2,by="i"), .)
我试过了:
list(x,y,z) %>%
Reduce(function(x,y) anti_join(x,y, by="i"), .)
它给了我x中但不是y中的行,这意味着我为每对夫妇写了一条相似的行,然后是inner_join结果。
有更好的方法吗?
答案 0 :(得分:1)
您需要使用:
all<-plyr::join_all(list(x,y,z), "i",type = "full")