基于向量将几个变量添加到数据帧

时间:2010-04-17 19:03:01

标签: r dataframe

我确信这很容易 - 但我现在无法理解。

基本上:我有一长串变量:

names <- c("first","second", "third")

我有一些数据,现在我需要添加变量。我能做到:

data$first <- NA

但是因为我有很长的名单,我想要一个自动化的解决方案。 这不起作用

for (i in 1:length(names)) (paste("data$", names[i],sep="") <- NA)

我想要这个的原因是,我需要垂直合并到数据帧,其中一个没有它应该拥有的所有变量。

提前致谢

2 个答案:

答案 0 :(得分:3)

您可以使用括号代替$。

,使用名称变量来访问列
for (name in names) data[name] <- NA

但你可以看看reshape包(或plyr)中的rbind.fill()。

希望这有帮助, 艾蒂安

答案 1 :(得分:3)

正如您在示例中所见

?`[<-.data.frame`

没有必要循环,你可以做到

data[names] <- NA

示例:

> (data <- data.frame(x=1:3, y=letters[1:3]))
  x y
1 1 a
2 2 b
3 3 c
> data[names] <- NA
> data
  x y first second third
1 1 a    NA     NA    NA
2 2 b    NA     NA    NA
3 3 c    NA     NA    NA