On Nov 22, 2010, at 3:54 PM, Tan, Richard wrote:

Thanks, add as.Date('1970-01-01') to the result column works.

But that should make them all the same date in 1970. Since aggregate renames the date column to "x", this should work:

as.Date( aggregate(a$payday, list(a$name), max)$x )
[1] "2000-01-01" "1999-01-01"


Richard

-----Original Message-----
From: David Winsemius [mailto:dwinsem...@comcast.net]
Sent: Monday, November 22, 2010 3:51 PM
To: Tan, Richard
Cc: r-help@r-project.org
Subject: Re: [R] aggregate a Date column does not work?


On Nov 22, 2010, at 3:39 PM, Tan, Richard wrote:

Hi, I am trying to aggregate max a Date type column but have weird
result, how do I fix this?

In the process of getting max() you coerced the Dates to numeric and
now you need to re-coerce them back to Dates

?as.Date
as.Date(<your result>)  (possibly with an origin it the default
"1970-01-01" doesn't get used.

--
David.



a <- rbind(

+ data.frame(name='Tom', payday=as.Date('1999-01-01')),

+ data.frame(name='Tom', payday=as.Date('2000-01-01')),

+ data.frame(name='Pete', payday=as.Date('1998-01-01')),

+ data.frame(name='Pete', payday=as.Date('1999-01-01'))

+ )

a

name     payday

1  Tom 1999-01-01

2  Tom 2000-01-01

3 Pete 1998-01-01

4 Pete 1999-01-01

aggregate(a$payday, list(a$name), max)

Group.1     x

1     Tom 10957

2    Pete 10592



Thanks,

Richard




        [[alternative HTML version deleted]]

______________________________________________
R-help@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.

David Winsemius, MD
West Hartford, CT



David Winsemius, MD
West Hartford, CT

______________________________________________
R-help@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.

Reply via email to