根据另一列的日期范围创建新列

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

我正在尝试根据另一列(日期)的一系列日期创建一个新列(fishing_year)。本质上,我想说的是,例如,当日期范围在“2019-04-01”~“2020-03-31”之间时,在新列中分配 2019 年。谁能帮我完成所需的脚本吗?我已将日期列转换为日期对象,并以各种形式尝试了此脚本(如下),但无济于事。在 R 中,我的日期输出看起来像这样 2019-04-01,但是当我导出到 csv 时,它看起来像这样

fishing_year=gpr_df_R %>% 
mutate(fishing_year=case_when(date = ('2019-04-01' ~ '2020-03-31') ~"2019",('2020-04-01' ~ '2021-03-31')~"2020", ('2021-04-01' ~ '2022-03-31')~"2021",('2022-04-01' ~ '2023-03-31')~"2022",('2023-04-01' ~ '2024-03-31')~"2023"))
date dplyr lubridate mutate
1个回答
0
投票

这是另一种方法,使用

year()
函数:

library(tidyverse)

gpr_df_R |> 
  mutate(date = ymd(date),
         fishing_year = ifelse(month(date) < 4, year(date) - 1, year(date))) 

输出:

        date fishing_year
1 2019-04-01         2019
© www.soinside.com 2019 - 2024. All rights reserved.