当我显式定义列名称(如 Matt Dowle 的示例中所示)时,我了解如何更改列的级别:
setattr(mydt$value,"levels",c(...))
但是,在现实生活中的问题中,您通常不知道列名称。当代码中未明确给出“值”时,此技术似乎不起作用:
setattr(mydt[,get("value")],"levels",c(...))
这是一个问题。我想这个语法通过复制为我提供了列,而不是对该列的引用,这与 mydt$value 相反,但我不知道如何解决这个问题:'(
谢谢
请参阅这个旧问题
这会起作用:
setattr(mydt[["value"]],"levels",c(...))
我用过这个:
levels(mydt[["value"]]) = list(A = "1", B = "2", C = "3")