按名称更改 data.tables 中的因子水平

Change factor levels in data.tables by name

我明白当我明确定义列名称时如何更改列的级别,就像 Matt Dowle 的这个示例中那样:

setattr(mydt$value,"levels",c(...))

虽然,在现实生活中的问题中,你往往不知道列名。当代码中未明确给出 "value" 时,此技术似乎不起作用:

setattr(mydt[,get("value")],"levels",c(...))

这是个问题。我想这个语法通过复制给我列而不是对列的引用,这与 mydt$value 相反,但我不知道如何解决这个问题 :'(

谢谢

请看this older question

这可行:

setattr(mydt[["value"]],"levels",c(...))