r - 如何将日期四舍五入到季度开始/结束?

标签 r date rounding

我需要获取一个日期向量,并为每个日期获取下一个季度的第一天。

(或者更确切地说,四舍五入到当前季度的最后一天,找到下一个季度的第一天并起飞是我的计划)
lubridate将舍入/上限为月,但不是季度

到目前为止,我找到的唯一解决方案是制作一个向量,列出从 1970 年到 2099 年的所有季度,然后搜索它以找到我日期之后的最小日期。显然,这矢量化和扩展性很差。

我需要能够指定年终月份(尽管年份总是从当月 1 日开始)

例如。

x = as.Date("2014-08-15")
RoundToQuarterStart(x, yearStarts = "March")
[1] "2014-09-01"

由于在此示例中年份从 3 月 1 日开始,因此第 3 季度从 9 月 1 日开始,这是给定日期之后的下一个季度开始。 (或等效地,此日期属于 8 月 31 日结束的第二季度)

最佳答案

zoo包可以帮助许多与日期相关的事情,包括:

library(zoo)

as.yearqtr("2014-08-15", format="%Y-%m-%d")
## [1] "2014 Q3"

as.Date(as.yearqtr("2014-08-15", format="%Y-%m-%d"))
## [1] "2014-07-01"

但是,这可能无法满足您的需求(有一些方法可以从这些值中推断出来)。
timeDate包有:
timeFirstDayInQuarter(charvec, format = "%Y-%m-%d", zone = "", FinCenter = "")
timeLastDayInQuarter(charvec, format = "%Y-%m-%d", zone = "", FinCenter = "")

这可能会更容易使用和调整以适应不同的 Q1 开始起点。

关于r - 如何将日期四舍五入到季度开始/结束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23045866/

相关文章:

swift - 最接近五的圆形货币

Java 货币面额舍入问题

r - 在 R 中按操作分组

r - 查找R中字符列的差异

r - 如何在R中的函数 "rank"中使用函数 "lapply"?

c++ - 我想重载运算符 '=' 但在重载之后运算符没有将正确的信息传递给对象

Java 无法解析的日期格式差异

c - 为什么 function floor 在这种情况下会给出不同的结果?

r - 在ggplot中绘制两组多条垂直线

python - Python中给定月份的季度的第一个月