使用列表将属性分配给因素

Assigning attributes to factors with a list

我有一个数据表如下:

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

我应该怎么做?

试试这个。

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"