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

如何在R中按季度分区对Price值进行正确排名?

解决按季度独立排名Price的问题

首先,确保你已加载dplyr包——你用到的管道符%>%、group_by()和mutate()都是该包的核心函数,未加载会导致分组逻辑失效。先运行加载命令:

library(dplyr)

你的代码逻辑本身是正确的,重新执行以下代码即可实现每个季度内Price的独立排名(最小Price对应1,最大对应3):

df <- data.frame( 
  year=c(2010,2010,2010,2010,2010,2010),
  quarter=c("q1","q1","q1","q2","q2","q2"),
  Price=c(10,20,30,10,20,30)
)

df %>% 
  group_by(quarter) %>% 
  mutate(rank = row_number(Price))

执行后会得到预期结果:

# A tibble: 6 × 4
# Groups:   quarter [2]
   year quarter Price  rank
  <dbl> <chr>   <dbl> <int>
1  2010 q1         10     1
2  2010 q1         20     2
3  2010 q1         30     3
4  2010 q2         10     1
5  2010 q2         20     2
6  2010 q2         30     3

如果后续遇到同季度内有重复Price的场景,可替换row_number()为rank()函数处理并列排名,例如rank(Price, ties.method = "min")会给相同Price分配相同的最小排名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 12:40:29