[R] How to convert number (matlab) to date
peter dalgaard
pdalgd at gmail.com
Mon Jul 18 14:56:14 CEST 2011
On Jul 18, 2011, at 14:08 , Gabor Grothendieck wrote:
> On Sat, Jul 16, 2011 at 11:50 PM, Eduardo M. A. M. Mendes
> <emammendes at gmail.com> wrote:
>> Hello
>>
>> I am new to R and I need to convert some dates (numeric format by matlab) to actual dates in R.
>>
>> For instance,
>>
>> Matlab -> 730456 -> >> datestr(730456)
>>
>> ans =
>>
>> 02-Dec-1999
>>
>
> Set the origin to Matlab's origin like this. Be sure you are using
> the indicated version of zoo or later:
>
>> library(zoo)
>> packageVersion("zoo")
> [1] ‘1.7.1’
>> as.Date(730456, origin = "0000-00-00")
> [1] "1999-12-02"
Doesn't work on a Mac, and in general, I think it depends on a quirk in your OS's date conversion utilities. What does work for me is
> as.Date(730456-1, origin='0000-01-01')
[1] "1999-12-02"
but even this is dubious, since there is no year 0 AD. In Gregorian and Julian calendars, 1 BC continues directly into 1 AD.
So, to be sure, try
> as.Date(730456-367, origin='0001-01-01')
[1] "1999-12-02"
(from which it transpires that the non-existing year 0 is a leap year...).
Or, or course, just use the appropriate "magic constant" of 719529 and begone with it:
> as.Date(730456-719529)
[1] "1999-12-02"
I fail to see what "zoo" has to do with this at all!
--
Peter Dalgaard
Center for Statistics, Copenhagen Business School
Solbjerg Plads 3, 2000 Frederiksberg, Denmark
Phone: (+45)38153501
Email: pd.mes at cbs.dk Priv: PDalgd at gmail.com
More information about the R-help
mailing list