Присваивание атрибутов факторам списком - PullRequest
0 голосов
/ 06 мая 2020

У меня есть следующая таблица данных:

library(data.table)
dt <- fread(
    "A   B   D  E  iso   year   
     1   A   1  NA ECU   2009   
     2   B   2  0  ECU   2009   
     3   D   3  0  BRA   2011   
     4   E   4  0  BRA   2011   
     5   D   7  NA ECU   2008   
     6   E   1  0  ECU   2008   
     7   A   3  2  BRA   2012   
     8   A   4  NA BRA   2012",
  header = TRUE
)
dt <- dt[, D := as.factor(D)]

Я хотел бы назначить атрибуты столбцу D. Я пробовал следующее:

alist <- list("A", "B", "C", "D", "E", "F", "G", "H")
attributes(dt$D) <- alist

Но получаю сообщение об ошибке:

Error in attributes(dt$D) <- alist : attributes must be named

Как мне это сделать?

1 Ответ

1 голос
/ 06 мая 2020

Попробуйте это.

alist <- list(c("A", "B", "C", "D", "E", "F", "G", "H"))
attributes(dt$D) <- setNames(alist, c("D"))

дает результат как

> attributes(dt$D)
$D
[1] "A" "B" "C" "D" "E" "F" "G" "H"
...