向数据框中添加行很容易,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
,所以我想纠正这个。
谢谢阅读