Ваш код фактически работает один раз на моей машине, как только я изменил data <- list(c("df1", "df2", "df3", "df4"))
на data <- list(df1, df2, df3, df4)
, как предложили @gersht и @NelsonGon. Вам также необходимо удалить c()
.
Я также попробовал for loop
подход:
df1 <- data.frame(product.consom.unit.tax.currency.geo.time = c(
"6000,4161901,KWH,I_TAX,EUR,AL",
"6000,4161901,KWH,I_TAX,EUR,AT",
"6000,4161901,KWH,I_TAX,EUR,BA",
"6000,4161901,KWH,I_TAX,EUR,BE",
"6000,4161901,KWH,I_TAX,EUR,BG",
"6000,4161901,KWH,I_TAX,EUR,CY"))
df2 <- df3 <- df4 <- df1
data <- list(df1, df2, df3, df4)
library(tidyr)
for (i in 1:4) {
assign(paste0("df", i), separate(data.frame(data[i]), 1, c("prod", "band", "unit", "tax", "currency", "geo"), ",", remove = TRUE))
}