我正在编码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循环一直按我想要的方式工作,因此代码行才是问题所在。提前致谢。
如果我们使用paste
,则一个选项是:=
在评估(!!
)时分配()
library(dplyr)
head(mtcars) %>%
rename(!!paste0('NO_', 2) := mpg, 'SI' = carb)
# NO_2 cyl disp hp drat wt qsec vs am gear SI
#Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
#Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
#Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
#Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
#Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
#Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句