在对data.table
进行一些在j
上操作的表达式时,.SD
并不包含表中的所有列,而只包含表达式使用的那些列。这对于运行来说是可以的,但对于调试来说并不理想。那么怎样才能看到所有的列呢?我可以将所有的列名传递给.SDcols
,但这似乎相当繁琐。例如:
x = data.table(a=1:10, b=10:1, id=1:5)
x[,{ browser(); a+1},by=id]
Called from: `[.data.table`(x, , {
browser()
a + 1
}, by = id)
Browse[1]> n
debug at #1: a + 1
Browse[1]> .SD
a
1: 1
2: 6