【发布时间】:2014-07-06 14:40:34
【问题描述】:
我们真的需要添加J() 来选择数字列吗?
没有J()我们可以得到字符列的结果。
library(data.table)
DT = data.table(x=rep(c("a","b","c"),each=3), y=c(1,3,6), v=1:9)
setkey(DT,x)
DT["a"]
# x y v
# 1: a 1 1
# 2: a 3 2
# 3: a 6 3
setkey(DT,y)
DT["1"]
# Error in `[.data.table`(DT, "1") :
# typeof x.y (double) != typeof i.y (character)
# Is it a bug?
DT[J(1)]
# y x v
# 1: 1 a 1
# 2: 1 b 4
# 3: 1 c 7
谢谢!
【问题讨论】:
-
@G.Grothendieck - 为什么不将此作为答案发布?
-
好的。已将其转移到答案中。
-
仅供参考,您也可以使用
.(1)代替J(1)。
标签: r data.table