作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在数据框上添加排名列,我的数据框如下所示:
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/
我是一名优秀的程序员,十分优秀!