查找 R 中分组数据帧中前 n 个表示的条目

2024-01-09

我是 R 的初学者,非常感谢您的回复,因为我被困在这段代码上(这是我解决问题的尝试,但它不起作用):

personal_spotify_df <- fromJSON("data/StreamingHistory0.json")
personal_spotify_df = personal_spotify_df %>%
  mutate(minutesPlayed = msPlayed/1000/60)
  
personal_spotify_df_ranked <- personal_spotify_df %>%
  group_by(artistName) %>%
  filter(top_n(15, max(nrows())))

我有一个数据框(请参阅下面的屏幕截图,了解其结构),这是我的点播收听历史记录。我想按艺术家对这个数据框进行分组,然后安排新的数据框以显示听过最多歌曲的前 15 位艺术家。我被困在如何从按 ArtistName 分组到实际从数据框中过滤出前 15 位代表艺术家。

数据框 https://i.stack.imgur.com/HscCV.png


我们可以使用slice_max, with n指定为 15 并使用创建的订单列add_count

library(dplyr)
personal_spotify_df %>%
  add_count(artistName, name = "Count") %>%  
  slice_max(n = 15, order_by = "Count") %>%
  select(-Count)

如果我们只想获取前 15 个不同的“artistName”,

personal_spotify_df %>%
    count(artistName, name = "Count") %>%
    slice_max(n = 15, order_by = "Count")

或者一个选项filter after arrange根据计数计算行数

personal_spotify_df %>%
   add_count(artistName) %>%
   arrange(desc(n)) %>%
   filter(artistName %in% head(unique(artistName), 15))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

查找 R 中分组数据帧中前 n 个表示的条目 的相关文章

随机推荐