如何解决多年数据集中一年内的不同季节
我有一个数据集,其中有多个年份分配给一个 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 举报,一经查实,本站将立刻删除。