【发布时间】:2014-03-13 23:01:40
【问题描述】:
假设我有一个带有 id 列、日期列和值列的 data.table。它由 id 和 date 键入。我只想提取某些日期。有没有办法只加入键的第二列,而忽略第一列?
例如,
values <- data.table(id = rep(1:2, each = 10), dates = rep(1:10, 2), values = rep(c(1,NA,NA, NA), 5))
setkey(values, id, dates)
dates <- data.table(id = c(1,5,8))
setkey(dates, id)
# what i want
x <- values$dates %in% dates$id
values[x]
谢谢!
【问题讨论】:
-
setkey(values, dates); values[dates]? -
是的,就是这样 :) 但如果我不需要的话,我会尽量避免重新输入
-
您不想这样做有什么特别的原因吗?
-
这应该可以在secondary keys - FR #1007 实施后实现。
-
表很大,如果没有必要,我宁愿不重新输入。我认为这是一种常见的操作,所以我确信会有更优雅的方式。
标签: r data.table