我有一个表集,我在循环中执行一些操作:
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>