【问题标题】:Arrange in R for Frequency in Column在 R 中排列以表示列中的频率
【发布时间】:2022-01-13 03:18:52
【问题描述】:

我正在寻找专栏中最常见的Start Station Name。所以我用了:

Top_Start_Station_Name <- df %>%
  count(start_station_name)

但是,它包含 82 页的站名及其出现次数。如何安排让最多 5 个站名出现?

【问题讨论】:

  • 你可以使用这个 dplyr 词来安排…arrange.
  • 你要统计每个站名出现的次数,然后返回最常见的五个名字?
  • 是的 rg255,如有任何混淆,请见谅。
  • 也许可以试试count(start_station_name, sort=TRUE) %&gt;% slice(1:5)。如果您包含一个简单的reproducible example,其中包含可用于测试和验证可能解决方案的示例输入和所需输出,则更容易为您提供帮助。
  • 谢谢弗利克先生。它现在确实有效。真的很感激。

标签: r dplyr


【解决方案1】:

试试这个:这应该会给你一个前 5 个站点的图:

library(tidyverse)
df %>% 
  mutate(start_station_name = fct_lump(start_station_name, n=5)) %>% 
  count(start_station_name) %>% 
  mutate(start_station_name = fct_reorder(start_station_name, n)) %>% 
  ggplot(aes(start_station_name, n))+
  geom_col()+
  coord_flip()

【讨论】:

    【解决方案2】:

    arrange(desc(.)) 函数组合可以按 count 函数产生的 tbl_df 中的计数(命名为 n)排序:

     Top_5_Start_Station_Names <- df %>% 
                              count(start_station_name) %>% # 2 col tbl, first col are names
                              arrange(desc(n)) %>% 
                              .[1:5,1]    # pick first 5 items from first col
    

    如果您想要名称和计数,您可以使用.[1:5 ] 作为最后一个函数。 (直到现在我才看到@MrFlick 更紧凑和更早的评论。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-11-07
      • 2022-01-19
      • 1970-01-01
      • 1970-01-01
      • 2013-12-28
      相关资源
      最近更新 更多