根据多项标准在 data.table 中排名

Ranking in data.table with multiple criteria

5大类500个品牌

我正在尝试将 "Rank" 列添加到基于 "Sales" 的 "Major Category" 使用:

Brands_12M <- Brands_12M[,Rank := frankv(Brands_12M, "Sales", "Major Category", order=-1L)]

我得到所有品牌的排名 1-500,忽略 "Major Category"。我需要按品牌对每个 "Major Category" 进行排名,即 1-100、1-100 等

非常感谢任何建议。

看了所有的评论我改了答案。这似乎更接近建议的内容。我在下面使用的样本数据集有 500 个观察值,这似乎是张贴者想要的。

每个 Major Category 中的排名从 1 到 100。

图书馆(data.table)

Brands_12M <- data.table(`Major Category` = rep(1:5,100),
                         Brand = 1:500,
                         Sales = runif(500))

Brands_12M <- Brands_12M[,Rank:=frankv(Sales, order=-1L),by=c("Major Category")][order(`Major Category`,Sales)]