我有一个循环,我试图为列表列表创建一个新列,该列表的常数取决于值j(j是从1到12的数字)。循环的其余部分工作,上一行重新命名同一数据框的列。
for(i in 1:length(idw.list)){
idw.output[[i]] <- list()
for(j in 1:length(idw.list[[i]])){
idw.output[[i]][[j]]= as.data.frame(idw.list[[i]][[j]])
names(idw.output[[i]][[j]])[1:3] <- c("LON", "LAT", "MAXMEAN")
(idw.output[[i]][[j]])[, "MONTH"] = j
}
}
我已经尝试过:
(idw.output[[i]][[j]])[, "MONTH"] = j
这将导致此错误:
Error in (idw.output[[i]][[j]]) <- `*vtmp*` :
could not find function "(<-"
现在数据看起来像这样:
LON LAT MAXMEAN
1 11.66847 -18.04208 30.07742
2 11.76847 -18.04208 30.07742
3 11.86847 -18.04208 30.07742
并且我想添加该列,以便在j = 1(第一个循环)的情况下:
LON LAT MAXMEAN MONTH
1 11.66847 -18.04208 30.07742 1
2 11.76847 -18.04208 30.07742 1
3 11.86847 -18.04208 30.07742 1
我将不胜感激,谢谢!
答案 0 :(得分:1)
帖子的再现性不强,发表评论的时间太长了,也许您可以尝试
for(i in seq_along(idw.list)) {
for(j in seq_along(idw.list[[i]])) {
names(idw.list[[i]][[j]])[1:3] <- c("LON", "LAT", "MAXMEAN")
idw.list[[i]][[j]]["Month"] = j
}
}