首页 > 解决方案 > 按值对df进行排名并按唯一变量求和

问题描述

我有这个df:

> head(orientadores)
    name    Var2 Freq rank
1  Author1    A    1    1
2  Author1    B    2    4
3  Author2    A    2    2
4  Author3    A    3    3
5  Author4    A    1    1
6  Author4    B    3    6

rank列是这样计算的,如果该Var2列等于"B",它应该存储它的两倍值。

orientadores$rank <- orientadores$Freq * ifelse(orientadores$Var2=="B",2,1)

我想按名称对排名值求和并对其进行排序,所以它看起来像这样:

> head(orientadores)
  name    final_rank
1 Author4 7
2 Author1 5
3 Author3 3
4 Author2 2

怎么做?我试过这个,但它不会做的伎俩:

orientadores <- orientadores %>%
        group_by(Var1) %>% mutate(final_rank = sum(Freq2))

标签: r

解决方案


推荐阅读