2017-10-20 14 views
4

Je ne sais pas comment trouver quelle ligne me donnerait la valeur la plus élevée pour une colonne spécifique dans une trame de donnéesComment trouver quelle ligne a la valeur la plus élevée pour une colonne spécifique dans une base de données?

Par exemple ci-dessous.

mtcars 
       mpg cyl disp hp drat wt ... 
Mazda RX4  21.0 6 160 110 3.90 2.62 ... 
Mazda RX4 Wag 21.0 6 160 110 3.90 2.88 ... 
Datsun 710 22.8 4 108 93 3.85 2.32 ... 

Je me concentre sur la colonne en poids et en essayant de voir qui a la plus grande valeur, ce qui serait la Mazda RX4 Wag de 2,88

Aussi comment puis-je trouver des valeurs spécifiques à l'aide des noms au lieu des vecteurs ? Par exemple Mazda RX4 Wag. J'ai essayé df[df$Mazda RX4 Wag,df$wt] mais me donne une erreur.

Merci

Répondre

0

Peut-être quelque chose comme ceci:

which(name.of.datatable == max(name.of.datatable[, 7]), arr.ind = T) 
2

Pour votre question poing.

subset(mtcars, wt == max(wt))[, "wt"] 
[1] 5.424 

Pour votre deuxième question

mtcars[row.names(mtcars) == "Mazda RX4 Wag", "wt"] 
[1] 2.875 
0

drop = FALSE vous permet d'imprimer le nom de la voiture-à-dire le nom de la ligne où vous avez le plus élevé ou plus bas wt valeur

1. valeur la plus élevée de la colonne en poids

Pour imprimer au maximum (en utilisant la fonction max()) ou highe valeur st de la colonne wt.

mtcars[mtcars$wt == max(mtcars$wt), "wt", drop = FALSE] 
#      wt 
# Lincoln Continental 5.424 

OU

Utilisez which.max() comme suggéré par JCT.

mtcars[which.max(mtcars$wt), "wt", drop = FALSE] 
    #      wt 
    # Lincoln Continental 5.424 

2. valeur la plus basse de la colonne en poids

Pour imprimer minimum (à l'aide de la fonction min()) ou de la valeur la plus basse de wt colonne

mtcars[mtcars$wt == min(mtcars$wt), "wt", drop = FALSE] 
#     wt 
# Lotus Europa 1.513 

OU

Utilisez which.min() comme suggéré par ycw.

mtcars[which.min(mtcars$wt), "wt", drop = FALSE] 
#     wt 
# Lotus Europa 1.513 
+1

Oui vu que merci. Même moi, j'observais ça. Mise à jour de la réponse –

+0

@ycw N'a jamais utilisé 'which.max'. Merci de voir comment cela fonctionne. –

+0

Fonctionne comme le charme! fonction which.max'. –

0

Si vous voulez que le numéro de ligne de la valeur maximale, utilisez which.max():

> which.max(mtcars$wt) 
[1] 16 

Pour obtenir toutes les informations de cette ligne, l'utiliser pour sous-ensemble de votre trame de données:

> mtcars[which.max(mtcars$wt),] 
        mpg cyl disp hp drat wt qsec vs am gear carb 
Lincoln Continental 10.4 8 460 215 3 5.424 17.82 0 0 3 4 

Pour sélectionner des éléments d'une donnée.encadrer par nom suffit de les insérer en tant que chaînes. Si vous voulez plusieurs lignes ou colonnes, vous devrez les mettre dans un vecteur avec c().