【发布时间】:2014-05-05 11:27:21
【问题描述】:
我想将 data.table setkey 与预定义列表 id 和 categories 一起使用,但收到错误消息:
> setkey(tr_id_cat_dt, id, categories)
Error in setkeyv(x, cols, verbose = verbose) :
some columns are not in the data.table: categories
我希望id 和categories 的所有元素都显示为键。
这可能吗?
id 和 categorie 是值的列表,例如:
categories = c(9115L, 9909L, 3203L, 5558L, 4401L, 1703L, 1726L, 3504L, 3509L,
5122L, 5616L, 5619L, 2202L, 2119L, 6202L, 5824L, 799L, 4517L,
7205L, 706L)
dput(head(tr_id_cat_dt))
structure(list(id = c(86246, 86246, 86246, 86246, 86246, 86246
), category = c(706L, 706L, 706L, 706L, 706L, 706L)), .Names = c("id",
"category"), sorted = c("id", "category"), class = c("data.table",
"data.frame"), row.names = c(NA, -6L), .internal.selfref = <pointer: 0x015424a0>)
【问题讨论】:
-
setkey(tr_id_cat_dt, c("id", "categories"))会起作用吗?或setkeyv(tr_id_cat_dt, c("id", "categories")) -
id 和 categories 实际上是值列表。我添加了一些细节。
-
显示
dput(head(tr_id_cat_dt))。categories是 data.table 中的列吗? -
看
dput输出的结构体:你的categories列其实叫category。 -
只能使用data.table的一列作为key。
标签: r data.table