Sélection de lignes correspond au max d'une variable pour chaque valeur d'une autre variable
Bonjour à tous,
voila mon problème, je cherche à extraire les lignes d'un data.frame correspondant au max de la variable temps pour chaque variable individu, mais je bloque. Je sais que cela est faisable avec une boucle, mais mon fichier étant assez important j'aurais aimé éviter.
Voici mes données:
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
DataEx<-data.frame(Indiv=c("A","A","B","B","B","C","C"),Tmp=c(3,4,5,1,3,3,1),Val1=c(1,2,3,4,1,2,1))
> DataEx
Indiv Tmp Val1
1 A 3 1
2 A 4 2
3 B 5 3
4 B 1 4
5 B 3 1
6 C 3 2
7 C 1 1 |
et je voudrais récupérer:
Code:
1 2 3 4
|
1 A 3 1
3 B 5 3
6 C 3 2 |
Pour l'instant je récupère l'indice pour chaque indiv de la Tmp max avec:
Code:
1 2 3 4
|
tapply(DataEx$Tmp,DataEx$Indiv,which.max)
A B C
2 1 1 |
mais il me faudrait l'indice dans le data.frame global et non pour chaque indiv.
Des idées?
Je vais continuer à chercher.
Benoît