在循环中更改列名称

时间:2015-05-23 03:30:28

标签: r loops for-loop names columnname

我有一个表集,我在循环中执行一些操作:

for (i in 1:24){
    assign(paste0("set.", i), ts(subset(set, set$hour==i)))
    assign(paste0("lag_set.", i),
        cbind(get(paste0("set.", i))[, 1:3],
        lag(get(paste0("set.", i))[, 4:ncol(set)], 3))[-1:-3, ])

    assign(paste0("train.set.", i),
        get(paste0("lag_set.", i))[1:train_obs, ])
    assign(paste0("validation.set.", i),
        get(paste0("lag_set.", i))[(train_obs+1):(nrow(set.1)-test_obs+1), ])
    assign(paste0("test.set.", i),
        get(paste0("lag_set.", i))[(nrow(set.1)-test_obs+1):(nrow(set.1)), ])
}

最后,我最终得到了统一的列名。

我尝试将以下行添加到循环中,它只是从第一个表中获取列名(它们不会更改):

colnames(get(paste0("lag_set.", i)))<-colnames(set)

结果,我收到以下错误:

  

colnames出错(get(paste0(“lag_set。”,i)))&lt; - colnames(set):               赋值目标扩展为非语言对象

但是,当我插入表格的名称(例如lag_set.1)时:

colnames(lag_set.1)<-colnames(set)

代码完美无缺。

我在哪里犯了错误以及如何处理它?<​​/ p>

0 个答案:

没有答案