例如,我有一个包含2列的数据框。我需要在此数据框中追加82个附加列,并使用特定的列名称。这些列名称存储在不同的向量(日期)中。我怎样才能有效地做到这一点?我尝试了以下方法:
for(i in 1:length(dates)) {
peekdata<-cbind(peekdata,dates[i]=0
}
如果这是一个愚蠢的问题,我对R很新,所以道歉
答案 0 :(得分:1)
你可以在没有循环的情况下完成。
首先,定义一些样本数据
peekdata <- data.frame(orig=1:5)
dates <- letters[1:10]
现在做
cbind(peekdata, setNames(replicate(length(dates), 0, simplify=F), dates))
获取
orig a b c d e f g h i j
1 1 0 0 0 0 0 0 0 0 0 0
2 2 0 0 0 0 0 0 0 0 0 0
3 3 0 0 0 0 0 0 0 0 0 0
4 4 0 0 0 0 0 0 0 0 0 0
5 5 0 0 0 0 0 0 0 0 0 0
但你做这件事很奇怪。你打算稍后填写数值吗?因为通常更容易一次性计算所有值并添加它们而不是从一堆零开始。