如何在 R 上的数据帧上按多个级别进行分组

问题描述 投票:0回答:1

我有一个数据框,其中包含性别列和年龄组列上的事务聚合,我想将性别类别设置为两列(女性,男性),行标签是年龄组。

how it is:

我通过这段代码做到了:

df_1 <- OrPatientTotals %>%
          filter(DomainID==1) %>%
          group_by(DisplayEn, GenderEn) %>%
          summarise(SumTransactions = sum(TotalTransactions)) 

how i want it to be

r dplyr tidyverse
1个回答
0
投票

使用

tidyr
包中的 pivot_wider()

library(tidyverse)

DisplayEn <- c(1, 1, 2, 2, 3, 3)
GenderEn <- c('Female', 'Male', 'Female', 'Male', 'Female', 'Male')
SumT <- c(3770, 8149, 11201, 23232, 18948, 32615)

data <- tibble(DisplayEn = DisplayEn,
               GenderEn = GenderEn,
               SumT = SumT)

data |>
  pivot_wider(names_from = GenderEn, values_from = SumT) |>
  mutate(Sum = Female + Male)
© www.soinside.com 2019 - 2024. All rights reserved.