【问题标题】:Assigning attributes to factors with a list使用列表将属性分配给因子
【发布时间】:2020-08-21 04:44:43
【问题描述】:

我有一个数据表如下:

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】:

    试试这个。

    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"
    

    【讨论】:

    • 一个衬里 attributes(dt$D) &lt;- list(D = c("A", "B", "C", "D", "E", "F", "G", "H")) 或使用 lst() 代替 attributes(dt$D) &lt;- lst(c("A", "B", "C", "D", "E", "F", "G", "H"))
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-14
    相关资源
    最近更新 更多