【发布时间】:2016-11-10 12:02:54
【问题描述】:
我在列表中有 data.frame,我打算有条件地合并特定的 data.frame 对象,其中合并第二个、第三个 data.frame 对象而不重复,然后将它与第一个 data.frame 对象合并。但是,我使用 rbind 函数来完成这项任务,但我的方法并不优雅。任何人都可以帮助我改进解决方案吗?如何获得可用于动态函数式编程的更兼容的解决方案?我怎样才能得到想要的输出?任何想法 ?
可重现的例子:
dfList <- list(
DF.1 = data.frame(red=c(1,2,3), blue=c(NA,1,2), green=c(1,1,2)),
DF.2 = data.frame(red=c(2,3,NA), blue=c(1,2,3), green=c(1,2,4)),
DF.3 = data.frame(red=c(2,3,NA,NA), blue=c(1,2,NA,3), green=c(1,2,3,4))
)
虚拟的方法:
rbind(dfList[[1L]], unique(rbind(dfList[[2L]], dfList[[3L]])))
显然,我在函数式编程中的尝试并不优雅。怎样才能优雅地做到这一点?
想要的输出:
red blue green
1 1 NA 1
2 2 1 1
3 3 2 2
11 2 1 1
21 3 2 2
31 NA 3 4
6 NA NA 3
如何更优雅、更高效地改进我的解决方案?提前致谢
【问题讨论】:
-
"merge" 不是
rbind的同义词。 -
@ChirayuChamoli 这与我在线程中所做的几乎相同,我需要动态解决方案。有什么想法吗?
-
我现在明白了。让我看看。