如何将观测值添加到现有数据框列?

时间:2019-06-26 15:43:56

标签: r

我有一个数据框。假设它看起来像这样:

Input data set

我已经模拟了一些值,并将它们放入向量c(4,5,8,8)中。我想将这些模拟值添加到列a,b和c。

我尝试了rbind或将向量插入到现有数据帧中,但是用模拟值代替了现有值,而不是将模拟值添加到现有值之下。

x <- data.frame("a" = c(2,3,1), "b" = c(5,1,2), "c" = c(6,4,7))
y <- c(4,5,8,8)

这是我希望看到的输出:

Output

我们将不胜感激。谢谢。

3 个答案:

答案 0 :(得分:1)

一个选项就是分配

n <- nrow(x)
x[n + seq_along(y), ] <- y
x
#  a b c
#1 2 5 6
#2 3 1 4
#3 1 2 7
#4 4 4 4
#5 5 5 5
#6 8 8 8
#7 8 8 8

另一个选择是replicate'y'和rbind

rbind(x, `colnames<-`(replicate(ncol(x), y), names(x)))

答案 1 :(得分:1)

可以:

  as.data.frame(sapply(x, 
               function(z) 
                 append(z,y)))
  a b c
1 2 5 6
2 3 1 4
3 1 2 7
4 4 4 4
5 5 5 5
6 8 8 8
7 8 8 8

答案 2 :(得分:0)

    x[(nrow(x)+1):(nrow(x)+length(y)),] <- y