[R] Compare date Oracle with Sys.time
Marc Schwartz
marc_schwartz at me.com
Fri Jul 6 19:27:42 CEST 2012
On Jul 6, 2012, at 10:50 AM, cindy.dol wrote:
> I would like to import only datas of my table where DATE>today-7days.
> But my datas in Oracle are 'dates' and in R are 'characters'.
> now_7<-format(Sys.time()-(7*60*60*24), "%Y-%m-%d 00:00:00")
> How to do?
Huh? How are you getting the data from Oracle into R?
Typically Oracle DATE/TIMESTAMP data types come over as ?POSIXct in R, if using facilities such as RODBC, which means using a regular date based comparison.
Use:
str(DF)
where 'DF' is your data frame, to review the structure of it.
If your data frame is called DF and your date/time column is called MyDATE, you can use as.Date() to coerce both to ?Date class and then do the subtraction with days as the unit of measurement:
NewDF <- subset(DF, as.Date(Sys.time()) - as.Date(MyDATE) < 7)
If for some reason, you are importing your data via another means into R, then you can still use ?as.Date to coerce the column to a Date class and use the above incantation.
See ?subset for additional information on that function.
Regards,
Marc Schwartz
More information about the R-help
mailing list