为什么dplyr的top_n()不起作用?

Use*_*ame 5 r dplyr

我有一个名为的数据框df:

City,State,Price,Dogs
Portland,OR,75,1
Portland,OR,100,3
San Diego,CA,12,4
San Diego,CA,23,5
...
Run Code Online (Sandbox Code Playgroud)

我使用dplyrsummarisegroup_by功能......

df.median <- summarise(
  group_by(
    df, 
    State, 
    City
  ),
  MEDIAN_PRICE = median(Price),
  SUM_DOGS = sum(Dogs)
)
Run Code Online (Sandbox Code Playgroud)

但是当我跑步时top_n(df.median, 100, SUM_DOGS),R并没有给我带有100个最高值的城市SUM_DOGS.它只是回来了df.median.

为什么?

aos*_*ith 11

您可能需要ungroup,因此您top_n从整个数据集中选择而不是top_n从每个状态中选择(因为您的数据集当前已分组).

top_n(ungroup(df.median), 100, SUM_DOGS)
Run Code Online (Sandbox Code Playgroud)