2016-03-31 6 views
3

я в dataframe называется df:Почему не работает top_n() dplyr?

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

Я использовал dplyr «ы summarise и group_by функции ...

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

Но когда я бегу top_n(df.median, 100, SUM_DOGS), R не дает мне города с 100 максимальные значения в SUM_DOGS. Он просто возвращает df.median.

Почему?

+0

Что он возвращает? –

+1

@MekkiMacAulay Отредактированный ответ – Username

+0

Если вам не нужны лучшие 100 значений на 'State', вам, вероятно, нужно« разгруппировать ». – aosmith

ответ

6

Вы, вероятно, нужно ungroup, так что вы выбираете top_n из всего набора данных, а не top_n от каждого государства (как ваш набор данных в настоящее время сгруппированы).

top_n(ungroup(df.median), 100, SUM_DOGS) 
Смежные вопросы