在下面假设一个数据表DT
DT <- data.table(m=1:3, n=factor(c("a","b","c")))
我想将第二列的级别更改为c(“ d”,“ e”,“ f”)。我可以使用
levels(DT$n) <- c("d","e","f")
但是,如果我只知道列索引该怎么办;即2.我尝试了以下行,但不起作用!
i=2
levels(DT[, ..i]) <- c("d","e","f")
这是我得到的错误:
Error in `[<-.data.table`(`*tmp*`, , ..i, value = list(n = 1:3)) : object '..i' not found
答案 0 :(得分:1)
您仍然可以使用data.frame
的方式:
levels(DT[[2]]) <- c("d", "e", "f")
但是请注意,通常不建议通过列索引进行更新。