Add a “rank” column to a data frame

前端 未结 5 1954
滥情空心
滥情空心 2020-11-27 14:43

I have a dataframe with counts of different items, in different years:

df <- data.frame(item = rep(c(\'a\',\'b\',\'c\'), 3),
                 year = rep(c         


        
5条回答
  •  死守一世寂寞
    2020-11-27 15:13

    There is a rank function to help you with that:

    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
    

提交回复
热议问题