You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用R tidyverse统计radio数据框中不同歌曲数最多的歌手

R tidyverse 实现统计播放不同歌曲数最多的艺术家

完整实现代码

你可以直接用以下代码完成需求:

radio %>% 
  select(artist, song) %>% 
  # 先对艺术家+歌曲组合去重,避免同一首歌重复播放导致计数虚高
  distinct() %>% 
  # 按艺术家分组
  group_by(artist) %>% 
  # 统计每个艺术家的不重复歌曲数量
  summarise(unique_song_num = n()) %>% 
  # 按不重复歌曲数降序排列
  arrange(desc(unique_song_num)) %>% 
  # 取排名第一的结果
  slice_head(n = 1)

简化写法

你也可以用count()函数简化分组统计的步骤,代码更简洁:

radio %>%
  distinct(artist, song) %>%
  count(artist, name = "unique_song_num") %>%
  slice_max(order_by = unique_song_num, n = 1)

特殊情况处理

如果存在多位艺术家的不重复歌曲数并列第一,只需要把取数逻辑替换为filter(unique_song_num == max(unique_song_num)),即可返回所有并列第一的艺术家结果:

radio %>%
  distinct(artist, song) %>%
  count(artist, name = "unique_song_num") %>%
  filter(unique_song_num == max(unique_song_num))

注意事项

  • 必须先执行distinct()对艺术家+歌曲的组合去重,否则统计的是歌曲播放总次数,而非不同歌曲数量
  • 如果不需要保留其他字段,distinct()可以直接指定需要去重的列,无需提前select()

内容的提问来源于stack exchange,提问作者anders

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 15:24:03