修改因子级别和其他列属性

# example data
DT = data.table(iris)

要通过引用修改因子级别,请使用 setattr

setattr(DT$Species, "levels", c("set", "ver", "vir")
# or
DT[, setattr(Species, "levels", c("set", "ver", "vir"))]

第二个选项可能会将结果打印到屏幕上。

使用 setattr 时,我们避免了在执行 levels(x) <- lvls 时通常会产生的副本,但它也会跳过一些检查,因此请务必小心分配有效的级别向量。