我是 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(使用前将#替换为@)