2016-03-31 1 views
3

ich einen Datenrahmen haben df genannt:Warum funktioniert die Funktion top_n() von dplyr nicht?

City,State,Price,Dogs 
Portland,OR,75,1 
Portland,OR,100,3 
San Diego,CA,12,4 
San Diego,CA,23,5 
... 

I dplyr ‚s summarise und group_by Funktionen ...

df.median <- summarise(
    group_by(
    df, 
    State, 
    City 
), 
    MEDIAN_PRICE = median(Price), 
    SUM_DOGS = sum(Dogs) 
) 

verwendet Aber wenn ich top_n(df.median, 100, SUM_DOGS) ausführen, wird R Städten mit der 100 geben Sie mir nicht höchste Werte in SUM_DOGS. Es gibt nur df.median zurück.

Warum?

+0

Was gibt es zurück? –

+1

@MekkiMacAulay Bearbeitete Antwort – Username

+0

Wenn Sie nicht die oberen 100 Werte pro 'State' wollen, müssen Sie wahrscheinlich' ungroup'. – aosmith

Antwort

6

Sie wahrscheinlich Notwendigkeit, ungroup, so dass Sie die top_n aus dem gesamten Datensatz wählen statt der top_n von jedem Staat (als Daten-Set zur Zeit gruppiert).

top_n(ungroup(df.median), 100, SUM_DOGS)