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

R语言电影数据集处理:按评分分组限3条的代码问题排查

问题分析与代码修正

你的代码存在几个关键问题,导致无法实现“每个评分保留3条记录”的需求,具体错误和修正方案如下:

代码错误点

  • 分组逻辑错误:你需要按**评分列(overall_score)**分组来控制每个评分的记录数,但代码里用group_by(uid, title)是按用户和电影标题分组,完全偏离需求。
  • slice参数无效:slice(13:3)的起始索引大于结束索引,不会返回任何数据,正确的写法应该是slice(1:3)来取每组前3条记录。
  • 列名不匹配:你描述的评分列是overall_score,但代码里排序用的是Overall,如果数据集里实际列名是overall_score,这会导致排序失效,甚至报错。
  • head(10)逻辑冗余且混乱:分组后用head(10)会取每组前10条,和你要的每组3条需求冲突,且位置错误。

修正后的代码

假设你的评分列实际名称是overall_score,修正后的代码如下:

movie2 <- movie_reviews %>%
  arrange(desc(overall_score)) %>%  # 按评分降序排列,确保每组内的记录顺序符合你的需求
  group_by(overall_score) %>%      # 按评分分组,控制每个评分的记录数
  slice(1:3)                       # 每组保留前3条记录

如果你的评分列确实是Overall,把代码里的overall_score替换成Overall即可。

执行这段代码后,每个评分(10、9…1)都会保留3条记录,解决之前Top10全是评分10电影的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 20:01:12