在构造表达式以放入调用的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
Run Code Online (Sandbox Code Playgroud)
...即使名为变量的变量.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
Run Code Online (Sandbox Code Playgroud)
使用.I,我可以查看+/-类似的东西.SD,但能够直接访问它的值会很好:
Browse[1]> DT[.I]
# x y v
# 1: b 1 …Run Code Online (Sandbox Code Playgroud)