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

如何简化R语言中音乐流派流总量统计排序的代码?

简化R语言音乐流派播放量统计代码

你的原代码步骤可以合并简化,以下提供两种常用的简化方案:

方案一:基于基础R(兼容原代码逻辑)

利用aggregate的公式写法自动生成正确列名,同时合并排序步骤,减少中间变量:

# 分组求和+降序排序一步完成
genre_sorted <- aggregate(streams ~ genre, data = music_data, FUN = sum)[order(-streams), ]

# 若需要将流派设为行名并仅保留播放量列
genre_grouped_sorted <- genre_sorted
rownames(genre_grouped_sorted) <- genre_grouped_sorted$genre
genre_grouped_sorted$genre <- NULL

方案二:基于tidyverse(更简洁的管道式写法)

如果常用dplyr包,用管道操作可以把所有步骤串联起来,可读性更高:

library(dplyr)

# 分组、求和、排序一气呵成
genre_sorted <- music_data |>
  group_by(genre) |>
  summarise(streams = sum(streams)) |>
  arrange(desc(streams))

# 若需将流派设为行名并仅保留播放量列,直接用内置函数转换
genre_grouped_sorted <- genre_sorted |>
  column_to_rownames("genre")

简化说明:

  1. 原代码中手动重命名列的步骤可通过aggregate(streams ~ genre, ...)自动生成genre和streams列,无需额外调用colnames。
  2. 排序步骤可以直接嵌入赋值语句,避免创建多余的中间变量(比如原代码的genre_sorted之前的genre变量)。
  3. tidyverse方案用管道|>串联所有操作,逻辑连贯,无需反复赋值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 05:01:01