Переупорядочить столбцы данных, игнорируя неопознанные столбцы - PullRequest
6 голосов
/ 08 октября 2009

Я думаю, что должен быть лучший способ сделать это.

Я пытаюсь изменить порядок столбцов в кадре данных. У меня есть список ordered.colnames, представляющий новый порядок - но некоторые столбцы не существуют в dataset Чтобы избежать ошибки "undefined columns selected", я обернул соответствующие фрагменты в функцию try().

Следующий метод работает, но есть ли лучший способ сделать это?

> ordered.colnames[1:5]
[1] "lady_22102"         "attentions_83249"   "perseverance_17864"
[4] "cecil_84477"        "cecilia_133476"

dataset.reordered = c() 
for (i in 1:length(ordered.colnames)) {
    col = NA
    col = try(cbind(dataset[,ordered.colnames[i]]),silent=TRUE)
    if (!inherits(col,"try-error")) {
        colnames(col) = ordered.colnames[i]
        dataset.reordered = cbind(dataset.reordered, col) 
    }
}

1 Ответ

13 голосов
/ 08 октября 2009

Разве вы не можете просто сделать это?

ordered.colnames <- ordered.colnames[ordered.colnames %in% colnames(dataset)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...