[R] stfrtime function not returning proper results through sqldf package in R

peter dalgaard pdalgd at gmail.com
Fri Sep 16 17:38:07 CEST 2016

On 16 Sep 2016, at 15:23 , PIKAL Petr <petr.pikal at precheza.cz> wrote:

> Hi Peter
> The devil is in detail
> Data from OP had different format and was transferred to Date object by as.Date, which results in incorrect values (and NA if not transferred)
> df <- data.frame(Date = c("2013/05/25","2013/05/28","2013/05/31","2013/06/01","2013/06/02",
> "2013/06/05","2013/06/07"), Quantity = c(9,1,15,4,5,17,18))
> df$Date<-as.Date(df$Date)
> cbind(df, sqldf("select strftime( '%m', Date) from df"))

To be fair, he actually used as.Date(...., "%Y/%m/%d"), so the values were in fact correct. The issue lay in the conversion to integer.

I can't figure out how those integers are interpreted, though:

> df <- data.frame(date=c(0,1000,2000))
> cbind(df, sqldf("select strftime( '%Y-%m-%d', date) from df"))
  date strftime( '%Y-%m-%d', date)
1    0                  -471-11-24
2 1000                  -471-08-20
3 2000                  -470-05-16

so the Epoch is nothing sensible and negative years are more than a thousand days??

Peter Dalgaard, Professor,
Center for Statistics, Copenhagen Business School
Solbjerg Plads 3, 2000 Frederiksberg, Denmark
Phone: (+45)38153501
Office: A 4.23
Email: pd.mes at cbs.dk  Priv: PDalgd at gmail.com

More information about the R-help mailing list