Перебор имен столбцов во фрейме данных - PullRequest
1 голос
/ 29 июля 2010

В цикле я пытаюсь выполнить простое переименование переменных в df.

Без цикла это прекрасно работает:

names(c1) <- c("sales", "month")

С циклически дружественнымподход ("1" вместо i в примере пробного запуска) следующие правильно ссылаются на имена (c1):

names(get(paste("c","1", sep="")))

, но когда я пишу всю операцию, я получаю сообщение об ошибке "в качестве имени переменной используется только первый элемент ", вот код:

assign(names(get(paste("c","1", sep=""))), c("sales", "month"))

Я не знаю, что означает ошибка, но заголовок столбца не был изменен.

Любые идеи?

Спасибо,

Роберто

Ответы [ 2 ]

0 голосов
/ 29 июля 2010

Согласно справке функции assign, первым аргументом является имя переменной, заданное в виде строки символов.Принуждение не выполняется, и будет использоваться первый элемент вектора символов, длина которого больше единицы, с предупреждением

0 голосов
/ 29 июля 2010

assign принимает имя переменной в виде строки. get возвращает переменную, а не ее имя.

В попытке насмехаться над богами R, вот функция, которая берет строку и список строк и назначает список строк имени именованного фрейма данных.

foo <- function(df, lon) {
  temp <- get(df)
  names(temp) <- lon
  assign(df, temp, inherits = TRUE)
}

Должен быть способ сделать это без копии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...