Я очищаю некоторые данные, импортируемые из Excel, из большого количества файлов, и мне нужно создать два ключа на основе индекса из имени файла во время импорта. Файлы импортируются по стране. Мне удалось импортировать файлы в отдельные фреймы данных, но я столкнулся с трудностями при создании новых переменных. Для краткости я установил страну = "США" и год = 1980.
Моей первой мыслью было создание списка фреймов данных, присутствующих в среде, путем фильтрации по шаблону "США". Однако это плохой стиль, и продукт выглядит как список символов, который не связан с самими фреймами данных.
usadflist <- Filter(is.data.frame, mget(ls(pattern="USA")))
Это когда я перешел к настройке фактического импорта, используя dplyr :: mutate (), однако не смог указать переменную, которая еще не была создана, то есть когда я попробовал cbind (), как показано ниже:
usalist <- list.files(path ="~/Desktop/reports/usa")
for(i in usalist) {
assign(paste(i),read_excel(path = paste("Desktop/reports/usa/",i,sep="")))
cbind(usalist[[i]][country]<-"usa", usalist[[i]][year]<-1980)
}
Дано сообщение об ошибке: Ошибка в *tmp*
[[i]]: индекс за пределами.
Я ожидаю, что у каждого из фреймов данных будет новая переменная: страна со значением «сша» и переменная: год со значением 1980. Любая помощь будет принята с благодарностью.