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 に答える