I have dataframe a: sym date val1 === ==== ==== foo 20090101 a1 foo 20090102 a2 foo 20090103 a3 and dataframe b: sym date val2 === ==== ==== foo 20090104 b1 I would like to join/merge them to generate the following: sym date val2 val1 === ==== ==== ==== foo 20090104 b1 a3 i.e. an equijoin on column 'sym' and a temporal join on column 'date' where the closest matching row is retrieved. I have been through the various regular/irregular timeseries packages and can not see anything like this. Regards.
temporal join
2 messages · mckenzig, Jeff Ryan
2 days later
The data.table package may be more in line with what you are after, but xts and zoo can also do what you need in this particular example:
a <- xts(c('a1','a2','a3'), timeBasedSeq(20090101/20090103))
colnames(a) <- 'foo'
b <- xts(c('b1'), as.Date('2009-01-04'))
colnames(b) <- 'foo'
a
foo 2009-01-01 "a1" 2009-01-02 "a2" 2009-01-03 "a3"
b
foo 2009-01-04 "b1"
cbind(a,b)
foo foo.1 2009-01-01 "a1" NA 2009-01-02 "a2" NA 2009-01-03 "a3" NA 2009-01-04 NA "b1"
na.locf(cbind(a,b))['20090104']
foo foo.1 2009-01-04 "a3" "b1" cbind/merge will merge along the union on the time-index by default (though all common joins are supported). The subsetting by time will then find the dates (or range of dates/times) that match. na.locf will carry forward last observations. That is from zoo; which works on xts, as xts extends zoo. HTH, Jeff
mckenzig wrote:
I have dataframe a: sym date val1 === ==== ==== foo 20090101 a1 foo 20090102 a2 foo 20090103 a3 and dataframe b: sym date val2 === ==== ==== foo 20090104 b1 I would like to join/merge them to generate the following: sym date val2 val1 === ==== ==== ==== foo 20090104 b1 a3 i.e. an equijoin on column 'sym' and a temporal join on column 'date' where the closest matching row is retrieved. I have been through the various regular/irregular timeseries packages and can not see anything like this. Regards.
______________________________________________ R-help at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.
View this message in context: http://www.nabble.com/temporal-join-tp21395414p21437847.html Sent from the R help mailing list archive at Nabble.com.