У меня есть цикл, который читает набор файлов, назначая имя каждого объекта динамически, используя имя файла. Каждый файл называется «timeseries_», а затем год.
library(haven)
library(dplyr)
library(stringr)
files <- list.files(path="data-raw/timeseries", pattern="*.dta", full.names=TRUE, recursive=FALSE)
for(file in files){
assign(paste0("timeseries_",str_extract(file, "([0-9]+)")), read_dta(file))
}
После чтения в каждом файле я хочу, чтобы цикл сохранял объект в файл .rda, но у меня возникают проблемы со ссылкой напеременная, которая была только что создана. Когда я использую as.name()
, я получаю сообщение об ошибке:
files <- list.files(path="data-raw/timeseries", pattern="*.dta", full.names=TRUE, recursive=FALSE)
for(file in files){
assign(paste0("timeseries_",str_extract(file, "([0-9]+)")), read_dta(file))
save(as.name(paste0("timeseries_",str_extract(file, "([0-9]+)"))),
file=paste0("data/pilot_",str_extract(file, "([0-9]+)"), ".rda"), compress="xz")
}
Error in save(as.name(paste0("timeseries_", str_extract(file, "([0-9]+)"))), :
object ‘as.name(paste0("timeseries_", str_extract(file, "([0-9]+)")))’ not found
Есть ли другой способ ссылки на только что созданную переменную?