[R] how to find maximum for multivariable data
David Winsemius
dwinsemius at comcast.net
Sat Sep 12 18:08:25 CEST 2009
On Sep 12, 2009, at 11:36 AM, caroline choong wrote:
> Dear all,
> I have a data set as follows:
>
> ID cycle.number cycle.result
> 1 2525 1 38
> 2 2525 2 38
> 3 2525 3 25
> 4 2525 4 25
> 5 2525 5 25
> 6 2525 6 25
> 7 2531 1 38
> 8 2531 2 38
> 9 2078 1 38
> 10 2078 2 38
>
> I want to find out the maximum cycle.number for each ID, and later
> find the
> corresponding cycle.result for that cycle.
>
> I have already managed to pull out the maximum cycle by using a for
> loop:
>
> max.cycle <- vector()
> patients <- (levels(factor(ID)))
> for (i in 1:length(patients)) {
>
> max.cycle[i] <- max(cycle.number[(ID %in% patients[i] )])
>
> }
>
> But i would like to know if there is a better or more elegant way of
> pulling
> out the maximum cycle.number for each ID?
There is:
?tapply
> patients <- read.table(textConnection(" ID
cycle.number cycle.result
+ 1 2525 1 38
+ 2 2525 2 38
+ 3 2525 3 25
+ 4 2525 4 25
+ 5 2525 5 25
+ 6 2525 6 25
+ 7 2531 1 38
+ 8 2531 2 38
+ 9 2078 1 38
+ 10 2078 2 38"), header=TRUE)
> tapply(patients$cycle.number, patients$ID, max)
2078 2525 2531
2 6 2
> Perhaps without the need for using
> a for loop?
>
> Many thanks,
David Winsemius, MD
Heritage Laboratories
West Hartford, CT
More information about the R-help
mailing list