Это мой дебютный пост здесь.Поэтому, пожалуйста, потерпите меня, если он не соответствует высоким стандартам прозрачности более опытных участников.
У меня есть 4 объекта (представляющих 4 года) в моей глобальной среде, которые представляют собой списки, состоящие из 12 данных.кадры (по одному на каждый месяц в году).Они имеют согласованную структуру, и имена столбцов фреймов данных одинаковы.Я пытаюсь изменить эти имена столбцов фреймов данных во всех 4 списках одним махом, используя функцию, а затем перезаписать все 4 объекта в моей глобальной среде новыми объектами, которые имеют фреймы данных с новыми именами столбцов..
Это моя функция:
change.name <- function(data){
for (i in 1:length(data)){
names(data[[i]]) <- c("a", "b", "c", "d", "e")
}
assign(deparse(substitute(data)), value = data, envir = globalenv())
}
Я использую свою функцию:
change.name(my_object1)
Это работает, за исключением того, что я получаю это предупреждение:
Предупреждающее сообщение: в assign (deparse (substitute (data)), value = data, envir = globalenv ()): только первый элемент используется в качестве имени переменной
Иобъект в моей глобальной среде не перезаписывается.Я получаю новый объект с именем, подобным этому:
"список (Ян = структура (список (a = c (11, 34, 36, 49, 55, 68,"
Я понимаю, что это связано с тем, как переменная функции хранится в новой среде, которую R создает при запуске функции (или чего-то подобного).
Мой вопрос прост: какисправить это?