R使用列索引更改数据表因子级别

R使用列索引更改数据表因子级别,r,datatable,R,Datatable,假设下面有一个数据表DT DT <- data.table(m=1:3, n=factor(c("a","b","c"))) 我想将第二列的级别更改为cd、e、f。我可以用电脑来做 levels(DT$n) <- c("d","e","f") 但是,如果我只知道列索引,我该怎么办;i、 e.2。我试过下面这句话,但不起作用 i=2 levels(DT[, ..i]) <- c("d","e","f") 这是我得到的错误: Error in `[<-.data.tab

假设下面有一个数据表DT

DT <- data.table(m=1:3, n=factor(c("a","b","c")))
我想将第二列的级别更改为cd、e、f。我可以用电脑来做

levels(DT$n) <- c("d","e","f")
但是,如果我只知道列索引,我该怎么办;i、 e.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
您仍然可以使用data.frame方式:

但请注意,通常不建议按列索引进行更新

levels(DT[[2]]) <- c("d", "e", "f")