【发布时间】:2021-06-17 18:02:11
【问题描述】:
library('dplyr')
num_ens <- 10
我有一段代码从目录中获取 num_ens 数据文件,读入它们,取它们的平均值,并将它们保存为 1 个对象
A_tree <- lapply(1:num_ens, function(i) {
# importing data on each index i
r <- read.csv(
paste0("/Users/sethparker/vox_LA_max/top_down_individ_sd1/ens_",i,"_0_tree_from_data.txt"),
header = FALSE
)
# creating add columns
colnames(r) <- c("GPP","NPP","LA")
r$month <- seq.int(nrow(r))
r$run <- i
return(r)
})
A_tree <- bind_rows(A_tree)
A_tree <- A_tree %>% group_by(month) %>% summarize(across(c(GPP,NPP,LA), mean))
我想自动自动化这个相同的过程来遍历 7 个目录:
/top_down_individ_sd1/ 到 /top_down_individ_sd7/
并生成一系列对象:
A_tree 到 G_tree
我没有成功尝试通过以下 for 循环的一些变体来实现这一点,这些变体产生了错误
letters <- LETTERS[seq(from = 1, to = 7)]
sd <- c("sd1","sd2","sd3","sd4","sd5","sd6","sd7")
for (j in 1:7) {
paste0(letters[j],"_tree") <- lapply(1:num_ens, function(i) {
# importing data on each index i
r <- read.csv(paste0(paste0("/Users/sethparker/vox_LA_max/top_down_individ_",sd[j]),"/ens_",i,"_0_tree_from_data.txt"),
header = FALSE)
# creating add columns
colnames(r) <- c("GPP","NPP","LA")
r$month <- seq.int(nrow(r))
r$run <- i
return(r)
})
paste0(letters[j],"_tree") <- bind_rows(paste0(letters[j],"_tree"))
paste0(letters[j],"_tree") <- paste0(letters[j],"_tree") %>% group_by(month) %>% summarize(across(c(GPP,NPP,LA), mean))
}
我怎样才能不出错地实现这个目标
【问题讨论】:
-
paste0(letters[j],"_tree") <-将无法使用assign(paste0(letters[j],"_tree"), value)或最好定义一个空的ll <- list()并附加ll[[j]] <-