有可能行绑定两个没有相同列集的数据帧吗?我希望保留绑定后不匹配的列。
当前回答
rbind。从包装胶合板填充可能是你正在寻找的。
其他回答
rbind。从包装胶合板填充可能是你正在寻找的。
您可以将它们插入到原始数据库(db1)的末尾,并添加第二个数据库的行数。db2中不包括的列将显示NA值。
db1[nrow(db1)+1:nrow(db1)+nrow(db2), names(db2)] <- db2
如果df1中的列是df2中的列的子集(通过列名):
df3 <- rbind(df1, df2[, names(df1)])
也许我完全误解了您的问题,但是“我希望保留绑定后不匹配的列”使我认为您正在寻找类似于SQL查询的左连接或右连接。R具有合并函数,允许您指定左连接、右连接或内部连接,类似于SQL中的连接表。
关于这个主题已经有一个很好的问题和答案:如何连接(合并)数据帧(内部、外部、左、右)?
gtools/smartbind不喜欢使用Dates,可能是因为它是as.vector。这是我的解决方案……
sbind = function(x, y, fill=NA) {
sbind.fill = function(d, cols){
for(c in cols)
d[[c]] = fill
d
}
x = sbind.fill(x, setdiff(names(y),names(x)))
y = sbind.fill(y, setdiff(names(x),names(y)))
rbind(x, y)
}