如何基于R中的日期创建2列?

时间:2019-01-23 20:23:39

标签: r

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

我有不同年份和月份的收集日期,希望根据这些条件对1年或2年或年份进行排序。

dtcoleta est_col year_col

13/02/03 13/03/13 14年4月13日 13年1月29日 2014/03/09 15年2月22日 13/03/13 16年1月29日 13/03/13 13/09/14 15年8月3日 16/07/12 14年1月29日 13年8月3日 13/03/13 13/07/12 13年1月29日 14/06/12 13年4月13日 16/03/16 13/07/12 15/10/19


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

1 个答案:

答案 0 :(得分:0)

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。