使用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
,所以我想纠正这个问题。
感谢阅读