为什么dplyr的top_n()函数无法工作?

9
我有一个名为df的数据框:
City,State,Price,Dogs
Portland,OR,75,1
Portland,OR,100,3
San Diego,CA,12,4
San Diego,CA,23,5
...

我使用了dplyrsummarisegroup_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没有给出在 SUM_DOGS 中具有前100个最高值的城市。它只返回了 df.median
为什么会这样?

它返回什么? - Mekki MacAulay
1
@MekkiMacAulay 编辑了答案 - Username
如果您不需要每个“State”的前100个值,则可能需要“取消分组”。 - aosmith
@aomith 如果我想从 df.median 中获取前100个,我该如何使用 ungroup 实现呢? - Username
1个回答

19

你可能需要执行ungroup操作,这样你就可以从整个数据集中选择top_n,而不是从每个省份/州份中选择top_n(因为你的数据集当前已经进行分组)。

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接