r - 使用 lubridate 检索会计年度的月份数
问题描述
我希望从 11 月开始的财政年度中检索月份编号(即财政年度的第一天是 11 月 1 日)。以下代码提供了我想要的输出,借用了 的week_start
语法lubridate::wday
,其中year_start
类似于week_start
:
library('lubridate')
dateToRetrieve = ymd('2017-11-05')
#output: [1] "2017-11-05"
monthFromDate = month(dateToRetrieve, year_start=11)
#output: [1] 1
由于此功能尚不存在,因此我正在寻找提供相同输出的替代解决方案。添加period(10, units="month")
到每个日期不起作用,因为不同月份的长度会导致月份之间的转换问题(例如,3 月 31 日减去一个月 = 2 月 31 日,这没有意义)。
我在这里的 lubridate github 上检查了一个类似的问题,但没有看到任何解决方案。有没有人有一个想法可以提供我想要的功能?
非常感谢,
解决方案
1) lubridate下面x
可以是字符向量也可以是Date
向量:
x <- "2017-11-05" # test data
(month(x) - 11) %% 12 + 1
## [1] 1
2) 基数 R要做到这一点,只有基数 R 首先计算给出的月份数mx
,然后执行相同的计算:
mx <- as.POSIXlt(x)$mon + 1
(mx - 11) %% 12 + 1
## [1] 1
推荐阅读
- amazon-web-services - AWS - 限制特定域中的访问
- chef-infra - Artifactory、Chef 和 Chocolatey 如何协同工作?
- python - pdftotext-buildpack 未安装在 heroku 上
- c++ - Windows 10 Camera frame server,使用网络摄像头识别实际应用
- asp.net-core - SignalR 对比 Asp.Net Core 中的 Websocket
- php - 是否可以在 Ubuntu 中使用多个 PHP 版本?
- java - 如何在不嵌套的情况下将两个类添加到同一个 .java 文件?
- python - 如何拆分整数并将其作为列表返回
- python - 使用 Python 抓取 Webscrape 容器
- python - 计算 x 处的重叠间隔数