如何让R对重复游戏名称仅计数一次以生成正确Top10榜单?
解决同一游戏多平台重复的Top10统计问题
你的核心问题是数据中同一游戏因多平台发布存在重复条目,直接取前10会导致重复游戏占据多个名额,只需先对游戏名称去重(每个游戏保留一条有效记录),再进行Top10筛选即可。
下面提供两种实用处理方式:
方式1:保留每个游戏的最高分记录(推荐)
做最佳游戏排名时,取每个游戏的最高评分来参与统计最合理:
# 按游戏名称分组,每组只保留评分最高的一条记录 unique_games <- ign %>% group_by(title) %>% slice_max(score, n = 1, with_ties = FALSE) %>% # with_ties=FALSE避免同分出现多条记录 ungroup() # 按评分降序取前10个不同游戏 top_10 <- unique_games %>% arrange(desc(score)) %>% slice(1:10) # 绘图代码(可按需修改标签) ggplot(top_10, aes(x=title, y=score))+ geom_col(fill="blue")+ theme(axis.text.x = element_text(size=10, angle = 90))+ ylab("评分")+ xlab("游戏名称")+ labs(title = "Top 10最佳游戏")
方式2:简单去重(保留每个游戏的第一条记录)
如果不需要特意取最高分,仅需去除重复游戏名称:
# 按游戏名称去重,保留每个游戏首次出现的完整记录 unique_games <- ign %>% distinct(title, .keep_all = TRUE) # 后续筛选Top10和绘图同上 top_10 <- unique_games %>% arrange(desc(score)) %>% slice(1:10) ggplot(top_10, aes(x=title, y=score))+ geom_col(fill="blue")+ theme(axis.text.x = element_text(size=10, angle = 90))+ ylab("评分")+ xlab("游戏名称")+ labs(title = "Top 10最佳游戏")
内容的提问来源于stack exchange,提问作者James
相关产品推荐
相关产品推荐

