Ah yes ... and reading the as.data.frame help we see (emphasis mine):

"... Direct calls to as.data.frame.<class>() are still possible (*base package!*), for 12 atomic base classes, but will deprecated ..."

So it does seem that a lot of these warnings are triggered by base R and updating this code may be a work in progress.


A little tangential (but related) to this though is still the fact that we can trigger the warning with:

lapply(Sys.Date(), as.data.frame)

so I wonder if the code in base/R/zzz.R (https://github.com/wch/r-source/blob/9f1940663f902174034a01197e55fd17c767213a/src/library/base/R/zzz.R#L664-L686) does need tweaking?

At this stage this is probably more a question for R-devel though.

Tim


On 06/07/2023 14:42, Enrico Schumann wrote:
On Thu, 06 Jul 2023, Vincent van Hees writes:

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)

I think it happens because

     data.frame(<POSIXlt>)

calls 'as.data.frame.POSIXlt' (per its S3-class), which
in turn directly calls 'as.data.frame.POSIXct':

     ## as.data.frame.POSIXlt
     function (x, row.names = NULL, optional = FALSE, ...)
     {
         value <- as.data.frame.POSIXct(as.POSIXct(x), row.names,
             optional, ...)
         if (!optional)
             names(value) <- deparse1(substitute(x))
         value
     }
     <environment: namespace:base>

Kind regards
     Enrico

Vincent

On Thu, 6 Jul 2023 at 10:41, Tim Taylor <tim.tay...@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@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel
______________________________________________
R-package-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel
        [[alternative HTML version deleted]]

______________________________________________
R-package-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel

______________________________________________
R-package-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-package-devel

Reply via email to