Desidero correggere una tabella in base alle sostituzioni in un'altra tabella. Voglio cambiare il valore in dt_current quando dt_override ha quell'unità e gli intervalli di date si sovrappongono a dt_current.Unire due tabelle dati per sovrascrivere i valori per intervallo di date
dt_current <- data.table(unit = c(rep("a",10), rep("b", 10)),
date = seq(as.Date("2015-1-1"), by = "day", length.out = 10),
num = 1:10, key = "unit")
dt_override <- data.table(unit = c("a", "a", "b", "zed"), start_date = as.Date(c("2015-01-03", "1492-12-25", "2015-01-02", "2015-01-11")),
end_date = as.Date(c("2015-01-05", "1492-12-26", "2015-01-04", "2015-01-14")),
value = NA, key = "unit")
sembra che dovrei usare una qualche forma di .EACHI quando si uniscono le due tabelle di dati, codificati qualcosa di simile a quanto segue, ho pensato che non funziona o corso.
dt_current[dt_override,
num := if(i.start_date <= date & i.end_date >= date) i.value,
by = .EACHI]
che soffia un pò la mia mente –