data.table二级索引有类型限制吗?

Bob*_*Bob 1 types r data.table

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]
Run Code Online (Sandbox Code Playgroud)

Bob*_*Bob 5

?data.table

i

characterlist然后使用转换为内部的data.frame输入。idata.tableas.data.table

结果,可以使用键或仅通过on=键完成联接。

.()在“键和快速二进制搜索”插图中也指出了跳过字符列的选项vignette("datatable-keys-fast-subset")

在字符类型的单列键上,可以在.()子设置时删除表示法并直接使用值,例如子集使用data.frames上的行名。