我确信这很容易 - 但我现在无法理解。
基本上:我有一长串变量:
names <- c("first","second", "third")
我有一些数据,现在我需要添加变量。我能做到:
data$first <- NA
但是因为我有很长的名单,我想要一个自动化的解决方案。 这不起作用。
for (i in 1:length(names)) (paste("data$", names[i],sep="") <- NA)
我想要这个的原因是,我需要垂直合并到数据帧,其中一个没有它应该拥有的所有变量。
提前致谢
答案 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