微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

多年数据集中一年内的不同季节

如何解决多年数据集中一年内的不同季节

我有一个数据集,其中有多个年份分配给一个 ID。我正在尝试按每个 ID 一年内的夏季月份和冬季月份过滤数据。例如,我想获得 ID 1 的夏季和冬季月份,仅适用于 2010、2011、2012 和 2013。

在实际数据集中,每个 ID 在数据集中的年数不同。

这是我目前所拥有的:

library(lubridate)
library(tidyverse)

date <- rep_len(seq(dmy("01-01-2010"),dmy("31-12-2013"),by = "days"),1000)
ID <- rep(seq(1,5),100)

df <- data.frame(date = date,x = runif(length(date),min = 60000,max = 80000),y = runif(length(date),min = 800000,max = 900000),ID)

#Filters for the core summer months
summer <- df %>% arrange(ID,date) %>%
  filter(month %in% 06:08) 
# Filters for the core winter months
winter <- df %>%  arrange(ID,date) %>%
  filter(month %in% c(01,02,03)) 

我正在尝试获取两个数据框:夏季月份和冬季月份,在这些数据框架中,我希望它按年份为每个 ID 分隔季节。我希望这是有道理的。

解决方法

我们可以创建一个新列“season_categ”并将其与“year”和“ID”一起用作分组变量

library(dplyr)
df1 <- df %>%
     mutate(season_categ = case_when(month %in% 6:8 ~ 'summer',month %in% 1:3 ~ 'winter')) %>%
     group_by(ID,year,season_categ) 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。