[R-pkg-devel] Warning 'as.data.frame.POSIXct()' is deprecated

Vincent van Hees v|ncentv@nhee@ @end|ng |rom gm@||@com
Thu Jul 6 15:54:22 CEST 2023


Thanks Dirk,
My plan will then be to revise my package to avoid using POSIXlt when
POSIXct is also sufficient, given that I am storing timestamps in
data.frames a lot. In the few instances where POSIXlt may be necessary I
will avoid storing them in a data.frame.
Vincent

On Thu, 6 Jul 2023 at 15:22, Dirk Eddelbuettel <edd using debian.org> wrote:

>
> On 6 July 2023 at 08:14, Dirk Eddelbuettel wrote:
> |
> | On 6 July 2023 at 14:31, Vincent van Hees wrote:
> | | Thanks, in that case the REPLEX for the issue may need to be:
> | |
> | | > remember = Sys.getenv("_R_CHECK_AS_DATA_FRAME_EXPLICIT_METHOD_")
> | | > Sys.setenv("_R_CHECK_AS_DATA_FRAME_EXPLICIT_METHOD_" = TRUE)
> | | > data.frame(time = Sys.time())
> | |                  time
> | | 1 2023-07-06 14:29:37
> | | > data.frame(time = as.POSIXlt(Sys.time()))
> | |                  time
> | | 1 2023-07-06 14:29:37
> | | Warning message:
> | | Direct call of 'as.data.frame.POSIXct()' is deprecated.  Use
> | | 'as.data.frame.vector()' or 'as.data.frame()' instead
> | | > Sys.setenv("_R_CHECK_AS_DATA_FRAME_EXPLICIT_METHOD_" = remember)
> |
> | Does _not_ happen in a plain R session.
> |
> | Does happen when `library(tidyverse)` is executed first. May come from
> | `tibble` or `vectors`, I have a habit of not using those much.
>
> Err, no, wait. I may have confused myself here jumping between R-devel and
> R (release).  Please disregard, and apologies for the noise.
>
> In any event, assigning a POSIXlt (which is an 11-element list) to a single
> column is not a great idiom and we had the POSIXct conversion there for a
> while IIRC.
>
> But assigning a POSIXct to a column should always work, and I would be
> surprised to find a minimally complete reproducible example showing that it
> does not.
>
> Dirk
>
> | Dirk
> |
> | | Vincent
> | |
> | | On Thu, 6 Jul 2023 at 10:41, Tim Taylor <
> tim.taylor using hiddenelephants.co.uk>
> | | wrote:
> | |
> | | > Apologies - I've not had enough caffeine just yet. The reprex below
> | | > highlights the issue but I think the code which implemented the
> change
> | | > *may* need tweaking not lapply.
> | | >
> | | > Tim
> | | >
> | | > On 06/07/2023 09:26, Tim Taylor wrote:
> | | > > This *may* be an issue in lapply.  Let's see what others day.
> Reprex
> | | > > below
> | | > >
> | | > > Sys.setenv("_R_CHECK_AS_DATA_FRAME_EXPLICIT_METHOD_" = TRUE)
> | | > > dat <- Sys.Date()
> | | > > as.data.frame(dat)
> | | > > #>          dat
> | | > > #> 1 2023-07-06
> | | > > lapply(dat, as.data.frame)
> | | > > #> Warning: Direct call of 'as.data.frame.Date()' is deprecated.
> Use
> | | > > #> 'as.data.frame.vector()' or 'as.data.frame()' instead
> | | > > #> [[1]]
> | | > > #>       X[[i]]
> | | > > #> 1 2023-07-06
> | | > >
> | | > > Tim
> | | > >
> | | > > On 06/07/2023 08:54, Vincent van Hees wrote:
> | | > >> Dear all,
> | | > >>
> | | > >> I see the following warning in my package test results:
> | | > >>
> | | > >> ```
> | | > >> Warning
> | | > >> Direct call of 'as.data.frame.POSIXct()' is deprecated.  Use
> | | > >> 'as.data.frame.vector()' or 'as.data.frame()' instead
> | | > >> ```
> | | > >>
> | | > >> The warning is not always there and I struggle to make it
> | | > >> reproducible. I
> | | > >> have encountered it in both Ubuntu 22.04 and in Windows 11, in
> both R
> | | > >> 4.3.0
> | | > >> and 4.3.1, in both RStudio and in an GitHub Actions environment
> (example
> | | > >> <
> https://github.com/wadpac/GGIR/actions/runs/5463862340/jobs/9945096566>).
> | | >
> | | > >>
> | | > >> The warning gives the impression that I am doing something that R
> no
> | | > >> longer
> | | > >> supports. However, I am not using the command
> as.data.frame.POSIXct()
> | | > >> anywhere directly in my code.
> | | > >>
> | | > >> When I dive into the code where the warnings occur I see patterns
> like:
> | | > >>
> | | > >> ```
> | | > >> now = Sys.time()
> | | > >> df = data.frame (time = seq(now, now + 10, by =1),  B  = 1:11)
> | | > >> ```
> | | > >>
> | | > >> (this is a simplification of for example:
> | | > >>
> | | >
> https://github.com/wadpac/GGIR/blob/master/tests/testthat/test_read.myacc.csv.R
> | | > >>
> | | > >> )
> | | > >>
> | | > >> Does this mean I am discouraged from putting a vector with POSIXct
> | | > >> values
> | | > >> in a data.frame?
> | | > >> If yes, what would be the recommended work around?
> | | > >>
> | | > >> I have been trying to find documentation or online discussions
> about
> | | > >> this
> | | > >> warning but no luck so far. I see R NEWS
> | | > >> <https://cran.r-project.org/doc/manuals/r-release/NEWS.html>
> mentions
> | | > >> updates to POSIXct related objects several times in the past year
> but
> | | > >> those
> | | > >> seem to be different issues.
> | | > >>
> | | > >> Best,
> | | > >>
> | | > >> Vincent
> | | > >>
> | | > >>     [[alternative HTML version deleted]]
> | | > >>
> | | > >> ______________________________________________
> | | > >> R-package-devel using r-project.org mailing list
> | | > >> https://stat.ethz.ch/mailman/listinfo/r-package-devel
> | | > >
> | | > > ______________________________________________
> | | > > R-package-devel using r-project.org mailing list
> | | > > https://stat.ethz.ch/mailman/listinfo/r-package-devel
> | | >
> | |
> | |     [[alternative HTML version deleted]]
> | |
> | | ______________________________________________
> | | R-package-devel using r-project.org mailing list
> | | https://stat.ethz.ch/mailman/listinfo/r-package-devel
> |
> | --
> | dirk.eddelbuettel.com | @eddelbuettel | edd using debian.org
>
> --
> dirk.eddelbuettel.com | @eddelbuettel | edd using debian.org
>

	[[alternative HTML version deleted]]



More information about the R-package-devel mailing list