[Rd] round.Date and trunc.Date not working / implemented
Martin Maechler
m@ech|er @end|ng |rom @t@t@m@th@ethz@ch
Thu Feb 8 15:15:22 CET 2024
>>>>> Jiří Moravec
>>>>> on Wed, 7 Feb 2024 10:23:15 +1300 writes:
> This is my first time working with dates, so if the answer is "Duh, work
> with POSIXt", please ignore it.
> Why is not `round.Date` and `trunc.Date` "implemented" for `Date`?
> Is this because `Date` is (mostly) a virtual class setup for a better
> inheritance or is that something that is just missing? (like
> `sort.data.frame`). Would R core welcome a patch?
> I decided to convert some dates to date using `as.Date` function, which
> converts to a plain `Date` class, because that felt natural.
> But then when trying to round to closest year, I have realized that the
> `round` and `trunc` for `Date` do not behave as for `POSIXt`.
> I would assume that these will have equivalent output:
> Sys.time() |> round("years") # 2024-01-01 NZDT
> Sys.Date() |> round("years") # Error in round.default(...): non-numeric
> argument to mathematical function
> Looking at the code (and reading the documentation more carefully) shows
> the issue, but this looks like an omission that should be patched.
> -- Jirka
You are wrong: They *are* implemented,
both even visible since they are in the 'base' package!
==> they have help pages you can read ....
Here are examples:
> trunc(Sys.Date())
[1] "2024-02-08"
> trunc(Sys.Date(), "month")
[1] "2024-02-01"
> trunc(Sys.Date(), "year")
[1] "2024-01-01"
>
More information about the R-devel
mailing list