bla*_*p07 23 r subset data.table
我一直在玩data.table
,我遇到了一个区别,我不确定我是否理解.给定以下数据集:
library(data.table)
set.seed(400)
DT <- data.table(x = sample(LETTERS[1:5], 20, TRUE), key = "x"); DT
Run Code Online (Sandbox Code Playgroud)
你可以向我解释以下表达方式之间的区别吗?
1) DT[J("E"), .I]
2) DT[ , .I[x == "E"] ]
3) DT[x == "E", .I]
Rag*_*aac 28
set.seed(400)
library(data.table)
DT <- data.table(x = sample(LETTERS[1:5], 20, TRUE), key = "x"); DT
Run Code Online (Sandbox Code Playgroud)
1)
DT[ , .I[x == "E"] ] # [1] 18 19 20
Run Code Online (Sandbox Code Playgroud)
是一个data.table,其中.I
是一个向量,表示E
ORIGINAL数据集中的行号DT
2)
DT[J("E") , .I] # [1] 1 2 3
DT["E" , .I] # [1] 1 2 3
DT[x == "E", .I] # [1] 1 2 3
Run Code Online (Sandbox Code Playgroud)
生成一个向量,其中.I
s是表示E
NEW子集数据中s 的行号的向量