How do I execute a rolling join when one table has groups, and the other does 
not? For example:

x.dt <-
  expand.grid(date = seq(as.Date("2017-01-01"), as.Date("2017-12-31"), "days"),
              group = c("A", "B")
x.dt[, x := rnorm(.N)]
setkey(x.dt, group, date)

y.dt <- data.table(date = seq(as.Date("2017-01-01"), as.Date("2017-12-31"), 
y.dt[, y := month(date)]
setkey(y.dt, date)

result <- y.dt[x.dt, roll = TRUE]

The last line fails because "group" is part of the key in x.dt, but not y.dt:

Error in bmerge(i, x, leftcols, rightcols, io, xo, roll, rollends, nomatch,  :
  typeof (double) != typeof (integer)

I would like the value of y in each row of the result to be the month number 
(from y.dt), regardless of the value of the group column.


- Elliot

datatable-help mailing list

Reply via email to