[R] get latest dates for different people in a dataset

Göran Broström goran.brostrom at umu.se
Sun Jan 25 10:01:11 CET 2015


On 2015-01-24 01:14, William Dunlap wrote:
> Here is one way.  Sort the data.frame, first by Name then break ties with
> CheckInDate.
> Then choose the rows that are the last in a run of identical Name values.

I do it by sorting by the reverse order of CheckinDate (last date first) 
within Name, then

 > dLatestVisit <- dSorted[!duplicated(dSorted$Name), ]

I guess it is faster, but who knows?

Göran

>
>> txt <- "Name    CheckInDate      Temp
> + John      1/3/2014              97
> + Mary     1/3/2014              98.1
> + Sam       1/4/2014              97.5
> + John      1/4/2014              99"
>> d <- read.table(header=TRUE,
> colClasses=c("character","character","numeric"), text=txt)
>> d$CheckInDate <- as.Date(d$CheckInDate, as.Date, format="%d/%m/%Y")
>> isEndOfRun <- function(x) c(x[-1] != x[-length(x)], TRUE)
>> dSorted <- d[order(d$Name, d$CheckInDate), ]
>> dLatestVisit <- dSorted[isEndOfRun(dSorted$Name), ]
>> dLatestVisit
>    Name CheckInDate Temp
> 4 John  2014-04-01 99.0
> 2 Mary  2014-03-01 98.1
> 3  Sam  2014-04-01 97.5
>
>
> Bill Dunlap
> TIBCO Software
> wdunlap tibco.com
>
> On Fri, Jan 23, 2015 at 3:43 PM, Tan, Richard <RTan at panagora.com> wrote:
>
>> Hi,
>>
>> Can someone help for a R question?
>>
>> I have a data set like:
>>
>> Name    CheckInDate      Temp
>> John      1/3/2014              97
>> Mary     1/3/2014              98.1
>> Sam       1/4/2014              97.5
>> John      1/4/2014              99
>>
>> I'd like to return a dataset that for each Name, get the row that is the
>> latest CheckInDate for that person.  For the example above it would be
>>
>> Name    CheckInDate      Temp
>> John      1/4/2014              99
>> Mary     1/3/2014              98.1
>> Sam       1/4/2014              97.5
>>
>>
>> Thank you for your help!
>>
>> Richard
>>
>>
>>          [[alternative HTML version deleted]]
>>
>> ______________________________________________
>> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
>> 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.
>>
>
> 	[[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> 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