我有4个数据帧,每个数据帧都是列表中的索引.我想将它们完全合并为一个数据帧.在数学的集合语言中,最有意义的是成为rownames上的联合.所以我可能有这样的事情:
U <- union(dfSub[[1]], dfSub[[2]], dfSub[[3]], dfSub[[4]])
Run Code Online (Sandbox Code Playgroud)
该union函数的问题在于它仅对向量进行操作.如何让这个在数据帧上工作?
编辑:如何在联盟之后保留rownames?
flo*_*del 15
首先,将它们绑在一起:
df.cat <- rbind(dfSub[[1]], dfSub[[2]], dfSub[[3]], dfSub[[4]])
Run Code Online (Sandbox Code Playgroud)
或更好:
df.cat <- do.call(rbind, dfSub[1:4])
Run Code Online (Sandbox Code Playgroud)
第一步要求所有data.frame具有相同的列名.如果不是这样,那么您可能rbind.fill对plyr包中的函数感兴趣:
library(plyr)
df.cat <- rbind.fill(dfSub[1:4])
Run Code Online (Sandbox Code Playgroud)
然后,如果需要,删除重复项(作为集合联合):
df.union <- unique(df.cat)
Run Code Online (Sandbox Code Playgroud)