[R] How to preserve date format while aggregating

jim holtman jholtman at gmail.com
Mon Sep 8 15:27:24 CEST 2008


Can you provide some actual data.  It sounds like the columns you are
are POSIXct, in which case you would want to do something like this:

time <- structure(time, class = c("POSIXt", "POSIXct"))

So it is important to know what your numeric values came from and what
their actual values were.  Which of these values look closer to what
you are seeing:

> as.numeric(as.POSIXct('2008-09-08'))
[1] 1220832000
> as.numeric(as.Date('2008-09-08'))
[1] 14130
>


On Mon, Sep 8, 2008 at 9:15 AM, Erich Studerus
<erich.studerus at bli.uzh.ch> wrote:
> Thanks, I've already tried that. The problem is, that the original date is
> not restored when I change the numeric back to date. I get a totally
> different date.
> Maybe it has something to do with the original date format. My data are
> directly imported from a SQL-database. The date column to which I want to
> apply the aggregate function has the two classes POSIXt and POSIXct.
> Changing the column to class "Date" before applying the aggregate function
> did not help. I still get a different date, when I transform it back to
> class "Date".
> I would be glad, if someone knew a more elegant way to extract the rows with
> minimum/earliest date per subject.
>
>
> Erich
>
>
> -----Ursprüngliche Nachricht-----
> Von: jim holtman [mailto:jholtman at gmail.com]
> Gesendet: Montag, 8. September 2008 14:24
> An: Erich Studerus
> Cc: r-help at r-project.org
> Betreff: Re: [R] How to preserve date format while aggregating
>
> Try changing the 'class' of the numeric result back to Date:
>
>> x <- as.Date('2008-09-08')
>> x
> [1] "2008-09-08"
>> y <- as.numeric(x)
>> y
> [1] 14130
>> str(y)
>  num 14130
>> class(y) <- "Date"
>> y
> [1] "2008-09-08"
>> str(y)
> Class 'Date'  num 14130
>>
>
>
> On Mon, Sep 8, 2008 at 6:38 AM, Erich Studerus
> <erich.studerus at bli.uzh.ch> wrote:
>> Hi
>>
>> I have a dataframe in which some subjects appear in more than one row. I
>> want to extract the subject-rows which have the minimum date per subject.
> I
>> tried the following aggregate function.
>>
>> attach(dataframe.xy)
>>
>> aggregate(Date,list(SubjectID),min)
>>
>> Unfortunately, the format of the Date-column changes to numeric, when I'm
>> applying this function. How can I preserve the date format?
>>
>> Thanks
>>
>> Erich
>>
>> ______________________________________________
>> 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.
>>
>
>
>
> --
> Jim Holtman
> Cincinnati, OH
> +1 513 646 9390
>
> What is the problem that you are trying to solve?
>
> ______________________________________________
> 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.
>



-- 
Jim Holtman
Cincinnati, OH
+1 513 646 9390

What is the problem that you are trying to solve?



More information about the R-help mailing list