gpt4 book ai didi

r - 在混合 R 中的其他两列的数据框中创建一个排名列

转载 作者:行者123 更新时间:2023-12-02 07:24:24 24 4
gpt4 key购买 nike

我想在数据框上添加排名列,我的数据框如下所示:

df <- data.frame(category = rep(c('c1','c2','c3'), each =3),
id = seq(1:9),
count = c(10,10,10,9,8,8,7,6,4))

我想要的是:

category id count rank
c1 1 10 9
c2 4 9 8
c3 7 7 7
c1 2 10 6
c2 5 8 5
c3 8 6 4
c1 3 10 3
c2 6 8 2
c3 9 4 1

我想根据不同的类别排名,然后他们的数量,从高到低。

最佳答案

这是排序/顺序组合的可能实现

library(data.table)
indx <- setDT(df)[, frank(-count, ties.method = "first"), by = category]$V1
df[order(indx)][, Rank := .N:1][]
# category id count Rank
# 1: c1 1 10 9
# 2: c2 4 9 8
# 3: c3 7 7 7
# 4: c1 2 10 6
# 5: c2 5 8 5
# 6: c3 8 6 4
# 7: c1 3 10 3
# 8: c2 6 8 2
# 9: c3 9 4 1

关于r - 在混合 R 中的其他两列的数据框中创建一个排名列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35153184/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com