为具有列表的因子分配属性

问题描述 投票:0回答:1

我有如下数据表:

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

我应该如何做?

r list attributes data.table
1个回答
1
投票

尝试一下。

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"
© www.soinside.com 2019 - 2024. All rights reserved.