[R] Converting factor data into Date-time format

R. Michael Weylandt michael.weylandt at gmail.com
Tue Mar 13 18:09:57 CET 2012


Just a little typo: see below.

On Tue, Mar 13, 2012 at 1:00 PM, Haojie Yan <yhj204 at googlemail.com> wrote:
> Dear Michael,
>
> Thanks a lot for your hints.
>
> I have just had a try as below but still got back some error messages as
> shown:
>
> The object containing the 'date_time' data is named 'INTERVAL_END_TIME' and
> and wanted to plot it against another variable 'CHANNEL_01' (data type:
> numerical).
>
>
> As you suggested I did the following...
>
> (1) Converting 'INTERVAL_END_TIME' into charactor first and name it
> 'DATE_TIME_1';
> (2) Converting  'DATE_TIME_1' into "POSIXlt" "POSIXt" type data
>
> But, seems it doesnt work well and I got 'NA's for all of them...
>
> Any thoughts??
>
> Many thanks again!
> HJ
>
>
>> INTERVAL_END_TIME[1:10]
>  [1] 20/02/2012 00:10 20/02/2012 00:20 20/02/2012 00:30 20/02/2012 00:40
> 20/02/2012 00:50
>  [6] 20/02/2012 01:00 20/02/2012 01:10 20/02/2012 01:20 20/02/2012 01:30
> 20/02/2012 01:40
> 1584 Levels: 01/03/2012 00:00 01/03/2012 00:10 01/03/2012 00:20 ...
> 29/02/2012 23:50
>
>> class(INTERVAL_END_TIME)
> [1] "factor"
>
>> DATE_TIME_1<-as.character(INTERVAL_END_TIME)
>
>> DATE_TIME_1[1:10]
>  [1] "20/02/2012 00:10" "20/02/2012 00:20" "20/02/2012 00:30" "20/02/2012
> 00:40"
>  [5] "20/02/2012 00:50" "20/02/2012 01:00" "20/02/2012 01:10" "20/02/2012
> 01:20"
>  [9] "20/02/2012 01:30" "20/02/2012 01:40"
>
>> class(DATE_TIME_1)
> [1] "character"
>
>> DATE_TIME_2<-as.POSIXlt(DATE_TIME_1,format="%d/%m/%y %H:%M")

This needs to be a capital "Y" as in my original post.

e.g.,

x <- c("20/02/2012 00:10", "20/02/2012 00:20", "20/02/2012 00:30",
"20/02/2012 00:40")

as.POSIXct(x, format = "%d/%m/%y %H:%M") # No good :-(
as.POSIXct(x, format = "%d/%m/%Y %H:%M") # Good!



Michael

>
>> DATE_TIME_2[1:10]
>  [1] NA NA NA NA NA NA NA NA NA NA
>
>> class(DATE_TIME_2)
> [1] "POSIXlt" "POSIXt"
>
>> plot(DATE_TIME_2,CHANNEL_01)
> Error in plot.window(...) : need finite 'xlim' values
> In addition: Warning messages:
> 1: In min(x) : no non-missing arguments to min; returning Inf
> 2: In max(x) : no non-missing arguments to max; returning -Inf
>>
>
> On Tue, Mar 13, 2012 at 4:30 PM, R. Michael Weylandt
> <michael.weylandt at gmail.com> wrote:
>>
>> as.POSIXct(as.character(FACTORHERE), format = "%d/%m/%Y %H:%M")
>>
>> Michael
>>
>> On Tue, Mar 13, 2012 at 12:20 PM, Haojie Yan <yhj204 at googlemail.com>
>> wrote:
>> > Dear R-user,
>> >
>> > I have read a dataset from .csv file into R. This dataset includes one
>> > column containing some data in 'date and time' format, e.g. 'dd/mm/yyyy
>> > hh:mm'.
>> >
>> > These data were automatically read and saved as 'factor' in R. When I
>> > was
>> > trying to produce some plots (such as time series) with the above 'date
>> > and
>> > time' on x-axis,  it caused some disodering problem, e.g. 1st of March
>> > 2012
>> > is in front of 10th of Feb. 2012 (if the data is from 10th Feb. 2012 to
>> > 1st
>> > of March 2012). I understand that I might have to convert them from
>> > 'factor' to 'date' first, so I tried using 'as.date'. But this method
>> > seems
>> > only work for data in format of  'd/m/y' and no further option that
>> > allows
>> > me to add hours and minutes.
>> >
>> > I checked online for other methods such as 'as.POSIX' and 'strptime' but
>> > none of them seem to offer me a quick solution.
>> >
>> > Please note that the data I received is recorded every 10 minutes so
>> > they
>> > are saved in the form of  'dd/mm/yyyy hh:mm', e.g. I only have data
>> > measured up to 'minute' NOT to  'second'. Are there any direct solution
>> > that I can solve this issue??
>> >
>> >
>> > Many thanks in advance!
>> > HJ
>> >
>> >        [[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