【发布时间】:2014-09-17 13:06:18
【问题描述】:
我遵循了data.table的介绍。在 data.table 的 x 列上设置一个键,然后进行查询。我试图在 v 列上设置密钥,但预期它不起作用。关于我做错了什么的任何想法?
> set.seed(34)
> DT = data.table(x=c("b","b","b","a","a"),v=rnorm(5))
> DT
x v
1: b -0.1388900
2: b 1.1998129
3: b -0.7477224
4: a -0.5752482
5: a -0.2635815
> setkey(DT,v)
> DT[1.1998129,]
x v
1: b -0.7477224
EXPECTED:
x v
1: b 1.1998129
【问题讨论】:
-
@poiuytrez 我猜是FAQ7.29。
DT[5,v]-1.1998129#[1] -3.393616e-09。如果将该列v转换为character and then dosetkey(..)`,您可能不会遇到同样的问题` -
@DavidArenburg
DT[J()]的奇怪之处在于浮动错误。如果您尝试DT[J(DT$v[5])],您将得到正确的结果。 -
@akrun FAQ 7.29 在哪里?
-
@poiuytrez 其实是FAQ7.31
http://cran.r-project.org/doc/FAQ/R-FAQ.html#Why-doesn_0027t-R-think-these-numbers-are-equal_003f
标签: r data.table