将向量添加到数据框的列

时间:2015-07-08 16:11:19

标签: r vector dataframe

很抱歉这个,但我找不到一个简单的解决方案。

我有一个数据框:

>bla<-c(1)
>df<-data.frame(bla)
>df

bla
1   1

我想将值附加到列的底部(因此不会创建新的值,如here所述)。例如,获取:

bla
1   1
2   2
3   3
4   4
5   5

我试过了:

df[2,1]<-c(2,3,4,5)
df[,1]<-c(2,3,4,5)

但我明白了:

Error in `[<-.data.frame`(`*tmp*`, 2, 1, value = c(2, 3, 4, 5)) : 
  replacement has 4 rows, data has 1

也许数据帧不合适,我应该尝试使用矩阵代替?任何建议将不胜感激! :)

2 个答案:

答案 0 :(得分:4)

您需要将c(2,3,4,5)转换为数据框,然后使用rbind加入行,就像@Ananda Mahto在评论中所做的那样

df <- rbind(df, data.frame(bla = c(2,3,4,5)))

其中'bla'是df

中列的名称

答案 1 :(得分:1)

如果您事先知道最终尺寸,则另一个选择就是创建一个给定大小的空数据框,然后逐行追加:

blah <- data.frame(matrix(NA, nrow=N, ncol=M))
    for (i in 1:N) {
      yourResults <- yourFunction()
      blah[i,] <- yourResults
    }