小编Max*_*Max的帖子

i中的子集由data.table中的变量名称设置

假设我有一个data.table,其中包含在变量中指定的列名.例如,我可能用过dcast:

groups <- sample(LETTERS, 2) # i.e. I don't now the values
dt1 <- data.table(ID = rep(1:2, each = 2), group = groups, value = 3:6)
(dt2 <- dcast(dt1, ID~group, value.var = "value"))
#    ID D Q
# 1:  1 3 4
# 2:  2 5 6
Run Code Online (Sandbox Code Playgroud)

现在我想基于最后两列中的值进行子集化,例如执行以下操作:

dt2[groups[1] == 3 & groups[2] == 4]
# Empty data.table (0 rows) of 3 cols: ID,D,Q
Run Code Online (Sandbox Code Playgroud)

有一个简单的方法吗?我发现我可以用键做到这一点:

setkeyv(dt2, groups)
dt2[.(3, 4)]
#    ID D Q
# 1:  1 3 4 …
Run Code Online (Sandbox Code Playgroud)

r data.table

2
推荐指数
1
解决办法
390
查看次数

标签 统计

data.table ×1

r ×1