[R] matlab serial date to r

Jeff Newmiller jdnewmil at dcn.davis.CA.us
Wed Jun 25 18:25:59 CEST 2014


I think the character format for this data is the most versatile and clear option. You do have to prevent the R input function (read.csv? read.table?) from converting it to factor when you read it in, but then you can use as.POSIXct with a format argument (see ?strptime) to obtain useful timestamp values in R. You also need to be clear about time zones, but that is true regardless of the software you use.
---------------------------------------------------------------------------
Jeff Newmiller                        The     .....       .....  Go Live...
DCN:<jdnewmil at dcn.davis.ca.us>        Basics: ##.#.       ##.#.  Live Go...
                                      Live:   OO#.. Dead: OO#..  Playing
Research Engineer (Solar/Batteries            O.O#.       #.O#.  with
/Software/Embedded Controllers)               .OO#.       .OO#.  rocks...1k
--------------------------------------------------------------------------- 
Sent from my phone. Please excuse my brevity.

On June 25, 2014 6:56:38 AM PDT, "Christoph Schlächter" <christoph.schlaechter at gmail.com> wrote:
>Hi,
>
>I have a matlab variable as serial date (class double) in the form
>'dd-mmm-yyyy HH:MM:SS'.
>
>format long
>disp( tx(40:60,1) )
>
>1.0e+05 *
>
>   7.356000000813091
>   7.356000000956856
>   7.356000001305921
>   7.356000001654985
>   7.356000002004049
>   7.356000002353113
>   7.356000002702178
>   7.356000003397179
>   7.356000004092182
>   7.356000004787183
>   7.356000005482185
>   7.356000006177187
>   7.356000006940080
>   7.356000007702975
>   7.356000008465869
>   7.356000009228763
>   7.356000009991657
>   7.356000010754551
>   7.356000011517445
>   7.356000012280339
>   7.356000013085329
>
>It should be the same as
>
>datestr( tx(40:60,1), 0)
>
>01-Jan-2014 00:00:07
>01-Jan-2014 00:00:08
>01-Jan-2014 00:00:11
>01-Jan-2014 00:00:14
>01-Jan-2014 00:00:17
>01-Jan-2014 00:00:20
>01-Jan-2014 00:00:23
>01-Jan-2014 00:00:29
>01-Jan-2014 00:00:35
>01-Jan-2014 00:00:41
>01-Jan-2014 00:00:47
>01-Jan-2014 00:00:53
>01-Jan-2014 00:00:59
>01-Jan-2014 00:01:06
>01-Jan-2014 00:01:13
>01-Jan-2014 00:01:19
>01-Jan-2014 00:01:26
>01-Jan-2014 00:01:32
>01-Jan-2014 00:01:39
>01-Jan-2014 00:01:46
>01-Jan-2014 00:01:53
>
>I can easily convert it with Matlab but then I will obtain a character
>format which is useless. I can also make use of
>cellstr(datestr(tx(:,1),
>0)) but then I can't save it in ASCII file.
>
>The origin of the Matlab format is supposed to be "0000-00-00". This is
>the
>only origin which results in "2014-01-01" which is my actual start
>date.
>
>Can somebody please tell me how I can simply convert serial datetime to
>datetime in R.
>
>Thanks in advance.
>
>All the best,
>
>Christoph
>
>	[[alternative HTML version deleted]]
>
>______________________________________________
>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.



More information about the R-help mailing list