gpt4 book ai didi

r - 首先按组总和对数据帧进行排序,然后按频率排序

转载 作者:行者123 更新时间:2023-12-02 04:03:27 26 4
gpt4 key购买 nike

我在 data.frame 中有以下数据:

reg        id    n
Echo E1 7
Charlie C1 3
Alpha A1 5
Echo E2 1
Alpha A2 4
Charlie C2 9

我试图首先按reg sum对其进行排序,然后按n(均递减)对其进行排序。结果将是:

reg        id    n
Charlie C2 9
Charlie C1 3
Alpha A1 5
Alpha A2 4
Echo E1 7
Echo E2 1

因为 Charlie 有 12 个,Alpha 有 9 个,Echo 有 8 个。

到目前为止,我只能进行分组和排序的第二部分(通过糟糕地使用 dplyr)。 reg 列仍然按字母顺序排序。

有没有一个优雅的解决方案?

最佳答案

使用 dplyr

# data
df1 <- read.table(text = "reg id n
Echo E1 7
Charlie C1 3
Alpha A1 5
Echo E2 1
Alpha A2 4
Charlie C2 9", header = TRUE)

library(dplyr)
df1 %>%
group_by(reg) %>%
mutate(nSum = sum(n)) %>%
arrange(-nSum, -n) %>%
select(-nSum)

# Source: local data frame [6 x 3]
# Groups: reg [3]
#
# reg id n
# <fctr> <fctr> <int>
# 1 Charlie C2 9
# 2 Charlie C1 3
# 3 Alpha A1 5
# 4 Alpha A2 4
# 5 Echo E1 7
# 6 Echo E2 1

关于r - 首先按组总和对数据帧进行排序,然后按频率排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40795499/

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