Chcę poprawić jedną tabelę na podstawie przesłaniania w innej tabeli. Chcę zmienić wartość w dt_current, gdy dt_override ma tę jednostkę, a zakresy dat pokrywają się z dt_current.Dołączanie dwóch tabel danych w celu nadpisania wartości według zakresu dat
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")
Wydaje się, że warto korzystać z jakiejś formy .EACHI podczas łączenia dwóch tabel danych, oznaczonych coś jak poniżej, że to nie działa lub kurs.
dt_current[dt_override,
num := if(i.start_date <= date & i.end_date >= date) i.value,
by = .EACHI]
To trochę wieje zdanie –