4

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" 
4

1 に答える 1

4
DT[,N:=as.myclass(N)]

動作するはずです

于 2013-02-07T10:19:41.657 に答える