gpt4 book ai didi

r - 使用 R 按类对数据进行分组,然后获取所有列的总和

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

我有看起来像这样的数据:

NAME     TYPE        REP     PRODUCT1   PRODUCT2  ...  PRODUCT30
Name1 Wholesale HA 4500.00 0.00 ... 760.00
Name2 Retail BM 89.00 0.00 ... 0.00
Name3 Wholesale HA 1000.00 800.00 ... 0.00
Name4 Wholesale BM 3000.00 100.00 ... 0.00
Name5 Wholesale BM 2000.00 0.00 ... 0.00

我想创建一个汇总表,其中包含每个 REP 和 TYPE 的 PRODUCT1 到 PRODUCT30 的总销售额。所以,结果会是这样
REP   TYPE       TOTAL1    TOTAL2  ...  TOTAL30
HA Wholesale 5500.00 800.00 760.00
BM Retail 89.00 0.00 0.00
BM Wholesale 5000.00 100.00 0.00

我尝试了以下代码的不同变体但无济于事
groupedsales <- group_by(sales, REP, TYPE) %>% summarise_all(sum())

我知道我可以通过使用它来工作
groupedsales <- group_by(sales, REP, TYPE) %>%    summarise(TOTAL1=sum(PRODUCT1), TOTAL2=sum(PRODUCT2), ... TOTAL30=sum(PRODUCT30)

但我认为必须有一种更简单的方法来获得每列的总和。请帮忙!

最佳答案

我们可以使用 aggregate来自 base R

aggregate(.~ REP + TYPE, df[-1], sum)

或与 summarise_at来自 dplyr
library(dplyr)
df %>%
group_by(REP, TYPE) %>%
summarise_at(vars(starts_with("PRODUCT")), sum) %>%
rename_at(3:ncol(.), ~ paste0("TOTAL", seq_len(ncol(df) - 3)))

关于r - 使用 R 按类对数据进行分组,然后获取所有列的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52213568/

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