добавить несколько переменных в dataframe на основе вектора - PullRequest
2 голосов
/ 17 апреля 2010

Я уверен, что это легко - но я не могу понять это прямо сейчас.

В основном: у меня длинный вектор переменных:

names <- c("first","second", "third")

У меня есть некоторые данные, и теперь мне нужно добавить переменные. Я мог бы сделать:

data$first <- NA

Но так как у меня длинный список, и я бы хотел автоматизированное решение. Это не работает .

for (i in 1:length(names)) (paste("data$", names[i],sep="") <- NA)

Причина, по которой я этого хочу, заключается в том, что мне нужно объединиться по вертикали с фреймами данных, где не все переменные должны быть.

Заранее спасибо

Ответы [ 2 ]

3 голосов
/ 20 апреля 2010

Как вы можете видеть в примерах к

?`[<-.data.frame`

нет необходимости в цикле, вы можете просто сделать

data[names] <- NA

Пример:

> (data <- data.frame(x=1:3, y=letters[1:3]))
  x y
1 1 a
2 2 b
3 3 c
> data[names] <- NA
> data
  x y first second third
1 1 a    NA     NA    NA
2 2 b    NA     NA    NA
3 3 c    NA     NA    NA
3 голосов
/ 17 апреля 2010

Вы можете получить доступ к столбцу, используя переменную для имени, используя скобки вместо $.

for (name in names) data[name] <- NA

Но вы можете взглянуть на rbind.fill () в пакете изменения формы (или plyr).

Надеюсь, это поможет, Etienne

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