如果在数字向量上设置了data.table
二级索引,则似乎不允许使用on =
语法对行进行子集化。但是,我在文档中看不到任何表明只有字符列才能成为二级索引的内容。 on =
语法是否仅限于字符列?
library(data.table)
dt <- data.table(A = 1:10, B = letters[1:10])
setindex(dt, A, B)
dt[on = "B", "c"]
dt[on = "A", 3]
答案 0 :(得分:4)
在?data.table
:
i
character
,list
和data.frame
输入到i
的内容使用data.table
在内部转换为as.data.table
。
结果,使用密钥或https://developer.android.com/training/constraint-layout/index.html完成了连接。
在&#34;密钥和快速二进制搜索&#34;中注明了跳过.()
字符列的选项。小插曲,vignette("datatable-keys-fast-subset")
:
在字符类型的单列键上,您可以删除
.()
表示法并在子集化时直接使用这些值,例如在data.frames上使用行名称的子集。