首页 > 解决方案 > 通过 R 中的多个组进行汇总

问题描述

我试图总结一个基于“站”和“深度箱”的数据集,每个数据集的家庭总数。这是数据集的外观:

在此处输入图像描述

最终结果应该是这样的”

在此处输入图像描述

...

标签: r

解决方案


使用dplyr,

数据

df <- read.table(text = "Family              Station    'Total Count'   'Depth Bin'
Macrouridae         1504-04          1         2500-2550
Ophidiidae          1504-04          1         3500-3550
Synaphobranchidae   1504-05          2         3000-3050", header=  TRUE)

代码

library(dplyr)
library(tidyr)

df %>%
  group_by(Family,Station, Depth.Bin) %>%
  summarise(n = sum(Total.Count)) %>%
  mutate(newcol = paste0(c(Station, Depth.Bin), collapse = ":")) %>%
  ungroup() %>%
  select(Family, n, newcol) %>%
  mutate(row = row_number()) %>%
  pivot_wider(names_from = newcol, values_from = n) %>%
  select(-row)

  Family            `1504-04:2500-2550` `1504-04:3500-3550` `1504-05:3000-3050`
  <chr>                           <int>               <int>               <int>
1 Macrouridae                         1                  NA                  NA
2 Ophidiidae                         NA                   1                  NA
3 Synaphobranchidae                  NA                  NA                   2

推荐阅读