Я использую цикл для чтения в нескольких файлах CSV и имен наборов данных Import1, import2 и т.д. Например:R: С помощью функции «имен» на наборе данных, созданных в цикле
assign(paste("import",i,sep=""), read.csv(files[i], header=FALSE))
Однако теперь я хочу переименовать переменные в каждом наборе данных. Я пробовал следующее:
names(as.name(paste("import",i,sep=""))) <- c("xxxx", "yyyy")
Но получить ошибку «цель присвоения расширяется для неязыкового объекта». (Мне нужно изменить имя переменных в каждом наборе данных в пределах цикла, так как имена переменных должны быть разными в каждом наборе данных).
Любые предложения о том, как это сделать, будут высоко оценены.
Спасибо.
Вы повторяете это дважды, когда вам нужно сделать это один раз, если вы используете 'setNames':' import <- lapply (files, function (x) setNames (read.csv (x, header = FALSE) , c ('xxx', 'yyy'))) ' – Thomas
Да, но я сконструировал ответ так, чтобы преднамеренно проиллюстрировать два разных понятия: 1) использование списка для хранения связанных объектов; 2) работа над списком объектов. Я думал, что это будет полезно для OP. Однако, если мы стремимся к максимально компактным решениям, существует также «import <- lapply (файлы, read.csv, header = FALSE, col.names = c (« xxx »,« yyy »)), что позволяет избежать необходимости для анонной функции – arvi1000