假设我想在class
列中的所有项目上设置data.table
。我觉得应该有一种方法可以从DT[,j]
部分内部做这种事情,但它似乎不起作用。我必须使用$
来完成。有谁知道为什么?
> DT <- data.table(L = letters, N = 1:26)
> sapply(DT, class)
L N
"character" "integer"
> DT[, {class(N) <- "MyClass"}] # Doesn't work
[1] "MyClass"
> sapply(DT, class)
L N
"character" "integer"
> DT[, class(N) <- "MyClass"] # Doesn't work
[1] "MyClass"
> sapply(DT, class)
L N
"character" "integer"
> class(DT$N) <- "MyClass" # Works
> sapply(DT, class)
L N
"character" "MyClass"
答案 0 :(得分:4)
DT[,N:=as.myclass(N)]
应该工作