r - 如何根据 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 日
==================================================== =======================
解决方案
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。
推荐阅读
- c# - PC离线时有时无法连接到SQLLocalDB
- php - 如何仅获取 php 套接字请求的结果?
- excel - Power BI 数据刷新 - Excel 中已删除的列仍显示为字段
- javascript - 如何将对象映射到对象数组中以进行选择搜索?
- mongodb - 使用 $facet 查询时,MongoDB 索引不起作用
- amazon-web-services - 使用 AWS 设备场时如何解决代理问题?
- excel - 来自 Excel VBA 的 REST API 调用:未发送请求标头
- kentico - Kentico 11 - 回滚后创建重复对象
- python - 在图下寻找表面
- r - 如何通过 R 中的可变列数加入(合并)数据帧