j
呼び出しの-slotに入れる式を作成する際[.data.table
に、 の内容を調べて、いじってみると役立つことがよくあります.SD
。
この素朴な試みはうまくいきません...
library(data.table)
DT = data.table(x=rep(c("a","b","c"),each=3), y=c(1,3,6), v=1:9)
DT[, browser(), by=x]
# Called from: `[.data.table`(DT, , browser(), by = x)
Browse[1]>
Browse[1]> .SD
# NULL data.table
...という名前の変数と.SD
、現在のdata.tableサブセットに関連する他のいくつかの変数がすべてローカル環境に存在しているにもかかわらず
Browse[1]> ls(all.names = TRUE)
# [1] ".BY" ".GRP" ".I" ".iSD" ".N" ".SD"
# [7] "Cfastmean" "mean" "print" "x"
Browse[1]> .N
# [1] 3
Browse[1]> .I
# [1] 4 5 6
を使用する.I
と、 +/- のようなものを表示でき.SD
ますが、その値に直接アクセスできると便利です。
Browse[1]> DT[.I]
# x y v
# 1: b 1 4
# 2: b 3 5
# 3: b 6 6
私の質問:の期待値が呼び出し.SD
内から直接利用できないのはなぜですか (while 、、およびare)? の値にアクセスする別の方法はありますか?browser()
.I
.N
.GRP
.BY
.SD