假设我有一个带有id列,日期列和值列的data.table。它由id和日期键入。我想只提取某些日期。有没有办法只加入密钥的第二列,忽略第一列?
例如,
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]
谢谢!
答案 0 :(得分:1)
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(dates = c(1,5,8))
setkey(dates, dates)
merge(values, dates, by = "dates", nomatch = 0)
要加入的列应该具有相同的名称,因此我更改了&#39; id&#39;在&#39;日期&#39;至于&#39;日期&#39;。