向数据框中添加行很容易,rbind但我发现这smartbind通常更适合处理异常,例如具有不同列名的数据框等。
然而,在某些情况下,迭代地添加行smartbind会产生额外的行:
library(gtools)
alldf <- data.frame()
for (i in 1:3) {
df <- data.frame(x=i)
alldf<- smartbind(df,alldf)
}
smartbind:
> alldf
x
1 3
2:1 2
2:2 1
2:3 1
rbind :
> alldf
x
1 3
2 2
3 1
我不知道为什么smartbind会这样,我尝试过删除 rownames rownames(alldf) <- NULL,但它似乎并没有改变这一点。我rbind现在可以改用,或者我可以alldf在第一个循环中初始化,但这似乎很麻烦。另外,我有时更喜欢使用smartbind,所以我想纠正这个。
谢谢阅读