首页 > 解决方案 > 如何根据 R 中的日期创建 2 列?

问题描述

我想根据“dtcoleta”列的月份和年份确定类别,1 列基于分类为 1 或 2 的月份(11 月至 3 月 = 1)和(4 月至 10 月 = 2),另一列基于年份(2013、2014、2015、2016 等)

我有不同年份和月份的收集日期,想按这些条件排序第 1 年或第 2 年或第 1 年收集。

dtcoleta est_col year_col

03/02/13 03/02/13 04/13/14 01/29/13 03/09/14 02/22/15 03/02/13 01/29/16 03/02/13 09/14/13 08/03/15 07/12/16 01/29/14 08/03/13 03/02/13 07/12/13 01/29/13 06/12/14 04/13/13 03/02/16 2013 年 7 月 12 日 2015 年 10 月 19 日


==================================================== =======================

标签: r

解决方案


lubridate 库和 dplyr 库在这里会很有帮助。您可以使用 lubridate 来获取日期的年份:

year(somedate)

您可以使用 case_when() 语句和 lubridate 的 month() 函数来获取基于月份的一列和二列:

mutate(dtcoleta,
       newcolumn = case_when(month(est_col) >= 11 | month(est_col) <= 3 ~ 1,
                             month(est_col) >= 4 & month(est_col) <= 10 ~ 2)

这段代码说“当month(est_col)的结果大于或等于11或小于或等于3时,将newcolumn设置为1;当month(est_col)在4到10之间时,将其设置为2。


推荐阅读