Hi
> 
> How could I select the rows of a dataset that have the maximum value in 
> one variable and to do this nested in another variable. It is a 
dataframe 
> in long format with repeated measures per subject. 
> I was not successful using aggregate, because one of the columns has 

You could do it by aggregate and subsequent selection matching values from 
your data frame but it is perfect example for powerfull list operations

> do.call("rbind",lapply(split(test, test$subject), function(x) 
x[which.max(x[,2]),]))
  subject time.ms      V3
1       1      22 stringC
2       2      25 stringA
> 

split splits data frame test according to subject variable into list of 
sub data frames
function x computes which is maximum value in second column in each sub 
data frame and selects the appropriate row
do.call takes the list and rbinds it to one final data frame.

Regards
Petr

> character values (and/or possibly because of another reason).
> I would like to transfer something like this: 
> subject    time.ms  V3 
> 1      1   stringA
> 1      12   stringB
> 1      22     stringC
> 2      1    stringB
> 2      14   stringC
> 2      25   stringA
> …. 
> To something like this: 
> subject      time.ms   V3
> 1      22   stringC
> 2      25    stringA
> … 
> 
> Thank you very much for you help!
> Miriam
> -- 
> 
> Jetzt informieren: http://mobile.1und1.de/?ac=OM.PW.PW003K20328T7073a
> 
> ______________________________________________
> 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.

______________________________________________
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