R изменяет уровни факторных данных, используя индекс столбца - PullRequest
0 голосов
/ 06 марта 2019

Предположим, что DT с датой ниже

DT <- data.table(m=1:3, n=factor(c("a","b","c")))

Я бы хотел изменить уровни 2-го столбца на c ("d", "e", "f"). Я могу сделать это, используя

levels(DT$n) <- c("d","e","f")

Но что мне делать, если я просто знаю индекс столбца; то есть 2. Я попробовал следующую строку, но она не работает!

i=2
levels(DT[, ..i]) <- c("d","e","f")

Это ошибка, которую я получаю:

Error in `[<-.data.table`(`*tmp*`, , ..i, value = list(n = 1:3)) : object '..i' not found

1 Ответ

1 голос
/ 06 марта 2019

Вы все еще могли бы сделать data.frame путь:

levels(DT[[2]]) <- c("d", "e", "f")

Обратите внимание, что обычно обновление по индексу столбца обычно не рекомендуется.

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