【发布时间】:2020-09-12 15:36:46
【问题描述】:
我正在编写一个 for 循环来导入 6 个数据帧并对其应用某些处理。
b = 6
for (i in 1:b) {
a = as.numeric(20200518)
d = as.Date("2020-05-18")
assign(paste("vacantes_", a + i, sep = ""), read_excel(paste("Favorites/Tito/01. aaaaaa/aaaaaaa 20/05. Data/
01. aa/01. Módulo aaaaaaaaaaa/Vacante_inconsistencias_", a + i, ".xlsx", sep = ""),col_names = TRUE))
assign(paste("vacantes_", a + i, "_llenado", sep = ""), get(paste("vacantes_", a + i, sep = "")) %>%
select("ddd", "uuuu", Llenó", "cod") %>%
group_by(ddd, uuuu, `Llenó`) %>% summarise(Cantidad = n()))
assign(paste("vacantes_", a + i, "_llenado1", sep = ""),
dcast(get(paste("vacantes_", a + i, "_llenado", sep = "")), ddd + uuuu ~ `Llenó`, sum) %>%
mutate(Fecha = as.Date(d + i)) %>% select("Fecha", "ddd", "uuuu", "NO", "SÍ"))
if(i == b){
rm(a, b, i, d)
}
}
在最后一个过程Cast(第三个函数)中,我想重命名每个数据帧中的两列,所以我将最后一行添加到代码的那部分:
## Cast
assign(paste("vacantes_", a + i, "_llenado1", sep = ""),
dcast(get(paste("vacantes_", a + i, "_llenado", sep = "")), ddd + uuuu ~ `Llenó`, sum) %>%
mutate(Fecha = as.Date(d + i)) %>% select("Fecha", "ddd", "uuuu", "NO", "SÍ") %>%
rename(paste("NO_", a + 1, sep ="") = NO, paste("SI_", a + 1, sep ="") = SÍ))
重命名函数导致 for 循环根本不起作用。我得到了:
Error: inesperado '=' in:
" i, "_llenado1", sep = ""), dcast(get(paste("vacantes_", a + i, "_llenado", sep = "")), ddd + uuuu ~ `Llenó`, sum) %>%
mutate(Fecha = as.Date(d + i)) %>% select("Fecha", "ddd", "uuuu", "NO", "SÍ")) %>% rename_(paste("NO_", a + 1, sep ="") ="
我尝试添加rename(get(paste("NO_", a + 1, sep ="")) = NO, get(paste("SI_", a + 1, sep ="")) = SÍ),但它也不起作用。
为了澄清,我删除了 rename 行,并且 for 循环到目前为止按我想要的方式工作,所以这行代码就是问题所在。提前致谢。
【问题讨论】:
标签: r for-loop dplyr tidyverse