如何使用统一值将新列插入数据框

时间:2015-04-07 02:21:16

标签: r dataframe

我有以下数据框:

> head(mtcars)
                   mpg cyl disp  hp drat    wt  qsec vs am gear carb
Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1

我想要做的是插入名为'new_column'的新列,其值为'foo' 导致这个:

                 new_column  mpg cyl disp  hp drat    wt  qsec vs am gear carb 
Mazda RX4           foo     21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
Mazda RX4 Wag       foo     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
Datsun 710          foo     22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
Hornet 4 Drive      foo     21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
Hornet Sportabout   foo     18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
Valiant             foo     18.1   6  225 105 2.76 3.460 20.22  1  0    3    1

我尝试了但失败了:

library(zoo)
zoo("foo",mtcars$new_columns)

这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:3)

您可以使用cbind(如果列的位置必须是第一个):

head(cbind("new_column" = "foo", mtcars))
#                   new_column  mpg cyl disp  hp drat    wt  qsec vs am gear carb
# Mazda RX4                foo 21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
# Mazda RX4 Wag            foo 21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
# Datsun 710               foo 22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
# Hornet 4 Drive           foo 21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
# Hornet Sportabout        foo 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
# Valiant                  foo 18.1   6  225 105 2.76 3.460 20.22  1  0    3    1

如果列可以在最后,您也可以这样做:

mtcars$new_column <- "foo"