12

我有以下数据框:

> dat

  V1   V2
1  1 6868
2  2  954
3  3   88

我想要做的是在当前结果的顶部添加另一行:

   V1   V2
1  0 10000
2  1 6868
3  2  954
4  3   88

为什么这不起作用:

new_dat <- rbind(dat,c(0,10000))

正确的方法是什么?

4

2 回答 2

21

先把你想要的向量放在上面:

new_dat <- rbind(c(0,10000), dat)

但是,在这里使用 rbind 假设您的所有列都是数字的,并且您假设列顺序与向量相同。一般来说,您应该将 data.frames 绑定在一起,如下所示,如果需要,您可以在其中混合列类型:

rbind(data.frame(V1 = 0, V2 = 10000), dat)

对于像这样的更一般的数据合并,还有许多其他选项。

于 2012-05-08T10:44:39.920 回答
9

为什么这不起作用:new_dat <- rbind(dat,c(0,10000))

它的顺序错误,只需查看输出:

R> rbind(dat, c(0, 1000))
  V1   V2
1  1 6868
2  2  954
3  3   88
4  0 1000

相反,交换参数的顺序:

rbind(c(0,10000), dat)

得到你想要的。或者,你可以有

rbind(data.frame(V1 = 0, V2 = 10000), dat)
于 2012-05-08T10:44:34.570 回答