繁体   English   中英

在 R 中使用 tidyverse 进行汇总后保留列

[英]keep columns after summarising using tidyverse in R

我有一个数据集,它由具有年、月和日值的组组成。 我想在 R 中使用 tidyverse 过滤组,以便找到时间序列中的最新月份。 这是一些示例代码。

dat = expand.grid(group = seq(1,5),year = seq(2016,2020),month=seq(1:12))
dat = dat[order(dat$group,dat$year,dat$month),]
dat$days=sample(seq(0,30),nrow(dat),replace=TRUE)
dat$year[dat$year==2020 & dat$month==12] = NA
dat = dat[complete.cases(dat),]

在此示例中,有 5 个组具有 2016 年至 2020 年的月度数据。但是,我们假设 12 月组缺失。 此外,数据集中缺少某些日期

我可以从 2019 年开始抓取 12 月,但不确定如何在摘要中包含天数并按月天数进行过滤。 例如,

a = dat %>%
  group_by(group,month) %>%
  summarise(year = max(year))

获取年份,但我想在月份和年份中添加正确的日期。 有谁知道如何保留天数列? 我不想平均或得到最小值或任何东西。

我们可以使用slice_max根据每个分组块的 'year' 的max返回整行

library(dplyr)
dat %>%
  group_by(group, month) %>%
  slice_max(year)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM