Я не знаю, откуда вы взяли файлы RData
, но обычно имеет смысл сохранять объекты с помощью saveRDS
и загружать их с помощью object <- readRDS
, чтобы вы могли контролировать имя объекта или загружать файл непосредственно в список.
В вашем случае я бы превратил ваши объекты в список с помощью (как предложено @phiver в комментариях):
corpora_l <- lapply(listofcorpora, get)
names(corpora_l) <- listofcorpora
Чтобы получить более чистую среду, теперь вы можете удалить лишние объекты:
# remove unnecessary objects
rm(list = c(listofcorpora, "listofcorpora"))
Работа с этим списком в моем мнении кажется более простой и более важной: docnames()
работает с объектами списка:
for (i in seq_along(corpora_l)) {
current_name <- names(corpora_l)[i]
current_year <- as.integer( str_extract( current_name, "\\d+" ) )
current_qtr <- as.integer( str_extract( current_name, "(?<=qtr)\\d" ) )
current_docname <- str_c( current_year,
"_qtr_",
current_qtr, "_",
formatC( seq_len( ndoc( corpora_l[[i]] ) ),
width = 5, flag = "0" ) )
docnames( corpora_l[[i]] ) <- current_docname
}
Также: я не знаю каков ваш план относительно docnames
, но кажется, что year-qtr - это скорее переменная документа. Таким образом, вы могли бы изменить последнюю строку в l oop на:
docvars(corpora_l[[i]], field = "quarter") <- str_c(current_year,
"_qtr_",
current_qtr)
Извините, что я вырезал ваш стиль там. Я не привык к количеству пробелов, которые вы оставляете в своем коде.