lapply分配标签

时间:2015-03-24 03:35:19

标签: r lapply

我无法使用lapply来更改数据表/框架的标签

   dt<-data.table(a=1:4,b=letters[1:5],c=5:9)
   > label(dt)
     a  b  c 
     "" "" "" 
   > lapply(c("a","b","c"),function(x) label(dt$x)="aaa")
                                          Show Traceback
                                          Rerun with Debug
     Error in attr(x, "label") <- value : attempt to set an attribute on NULL 

为什么不起作用?如果我在lapply以外的label(dt$a)="aaa"工作

之外执行此操作

1 个答案:

答案 0 :(得分:2)

使用dt[[x]]代替dt$x。它使用x作为文字。

此外,由于函数未返回值,因此更容易使用显式循环(而不是sapplylapply

for(i in c("a","b","c")) {
        Hmisc::label(dt[[i]]) <- "aaa"
}