R 我可以用setkey()获取data.table中数值列的所有行吗?
如果对字符列data.table使用setkey,则返回所有行,例如R 我可以用setkey()获取data.table中数值列的所有行吗?,r,data.table,R,Data.table,如果对字符列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您可以使
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您可以使用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
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