2017-02-12 2 views
-2

Comment créer un sous-ensemble avec la valeur la plus élevée d'une certaine variable dans une trame de données?Sous-ensemble par valeur la plus élevée d'une variable (R)

J'ai la trame de données suivante, dont je veux extraire la plus haute valeur de V1 par nom:

name V1 V2 
1 name1 1 f 
2 name1 2 b 
3 name1 5 c 
4 name2 3 f 
5 name2 8 g 
6 name2 2 m 

Le sous-ensemble devrait ressembler à ceci

name V1 V2 
3 name1 5 c 
5 name2 8 g 

Répondre

-2

Nous pouvons utiliser dplyr. Après le regroupement par 'nom' slice la ligne qui a la valeur maximale pour 'V1'

library(dplyr) 
df1 %>% 
    group_by(name) %>% 
    slice(which.max(V1)) 
# name V1 V2 
# <chr> <int> <chr> 
#1 name1  5  c 
#2 name2  8  g