如果我在字符列data.table上使用setkey,则返回所有行,例如
DT <- data.table(V1=c(1L,2L),
V2=LETTERS[1:3],
V3=round(rnorm(4),4),
V4=1:12)
setkey(DT,V2)
DT['A'] =
V1 V2 V3 V4
1: 1 A 0.6741 1
2: 2 A 0.5648 4
3: 1 A -1.0006 7
4: 2 A 0.5047 10
但这不适用于数字列,例如
DT <- data.table(V1=c(1L,2L),
V2=LETTERS[1:3],
V3=round(rnorm(4),4),
V4=1:12)
setkey(DT,V1)
1: 1 C -1.3419 3
有办法吗?
答案 0 :(得分:2)
您可以使用J(1)
或.(1)
,如下所示:
DT[.(1)]
# V1 V2 V3 V4
# 1: 1 A -0.0780 1
# 2: 1 C 1.0128 3
# 3: 1 B -0.0780 5
# 4: 1 A 1.0128 7
# 5: 1 C -0.0780 9
# 6: 1 B 1.0128 11
DT[J(1)]
# V1 V2 V3 V4
# 1: 1 A -0.0780 1
# 2: 1 C 1.0128 3
# 3: 1 B -0.0780 5
# 4: 1 A 1.0128 7
# 5: 1 C -0.0780 9
# 6: 1 B 1.0128 11