gpt4 book ai didi

r - 将 “rank”列添加到数据框

转载 作者:行者123 更新时间:2023-12-03 08:34:16 25 4
gpt4 key购买 nike

我有一个数据框,其中包含不同年份中不同项目的计数:

df <- data.frame(item = rep(c('a','b','c'), 3),
year = rep(c('2010','2011','2012'), each=3),
count = c(1,4,6,3,8,3,5,7,9))

我想添加一个“year.rank”列,该列给出了给定年份内某项的排名,其中较高的计数会导致较高的“排名”。通过以上操作,它看起来像:
  item year count year.rank
1 a 2010 1 3
2 b 2010 4 2
3 c 2010 6 1
4 a 2011 3 2
5 b 2011 8 1
6 c 2011 3 3
7 a 2012 5 3
8 b 2012 7 2
9 c 2012 9 1

我知道我可以使用 order(df$count)对整个数据帧执行此操作,但是我不确定如何按年份进行。

最佳答案

有一个rank函数可以帮助您:

transform(df, 
year.rank = ave(count, year,
FUN = function(x) rank(-x, ties.method = "first")))
item year count year.rank
1 a 2010 1 3
2 b 2010 4 2
3 c 2010 6 1
4 a 2011 3 2
5 b 2011 8 1
6 c 2011 3 3
7 a 2012 5 3
8 b 2012 7 2
9 c 2012 9 1

关于r - 将 “rank”列添加到数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15170777/

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