2012-04-19 4 views

Répondre

9

Yo peut faire comme suit:

with(df, d[v== max(v[c=="foo"])]) 

ÉDITÉE: Si vous voulez obtenir la valeur de d pour tous les niveaux de c:

library(plyr) 
ddply(df, "c", subset, v==max(v)) 
+0

Merci. avec (df, d [v == max (v [c == "foo"])]) est ce que je cherchais. – amh

+0

Pour mon cas, je voulais vraiment obtenir la valeur de d pour tous les niveaux de c, mais il m'a dit que "les longs vecteurs ne sont pas encore supportés" dans R-3.1.2. Le fichier était un peu gros, alors je l'ai résolu d'une autre façon, mais définitivement un upvote! –

1

Alors que la réponse de Manuel fonctionnera la plupart du temps, je crois une version plus correcte serait:

with(df, d[v== max(v[c=="foo"]) & c=="foo"]) 

Sinon, il est possible de faire correspondre une ligne qui a v==max mais pas en fait un sous-ensemble c=="foo".

Questions connexes