[Rd] Possible bug in `class<-` when a class-specific '[[.' method is defined

Kevin Ushey kev|nu@hey @end|ng |rom gm@||@com
Mon Jul 15 18:19:19 CEST 2019


When RStudio builds the Environment pane, it will evaluate some R code
on objects in your global environment (as you have seen). In
particular, for better or worse, it calls `str()` on objects in the
global environment, to get a short text summary of the object.

So, to reproduce what you're seeing in a plain R session, you can check:

> counttt
[1] 0
> str(df)
Classes 'MYCLASS' and 'data.frame':     5 obs. of  4 variables:
 $ V1: int  1 2 3 4 5
 $ V2: int  6 7 8 9 10
 $ V3: int  11 12 13 14 15
 $ V4: int  16 17 18 19 20
> counttt
[1] 9

Newer versions will allow you to disable the Environment pane if you
so desire, since calling `str()` can have these kinds of undesirable
side effects in some cases.

In general though, if you're reporting a bug in R (as opposed to
RStudio) it's best to verify that you can reproduce the issue in a
'plain' R session (e.g. in the terminal) to be absolutely sure you're
seeing an R issue as opposed to an RStudio issue, as I imagine the
last thing R Core wants to do is spend time tracking down an issue
only to find it was in RStudio rather than R itself...

If you want to follow up further with the RStudio team I'd recommend
making a post at https://community.rstudio.com/c/rstudio-ide.

Thanks,
Kevin

On Mon, Jul 15, 2019 at 7:59 AM Rui Barradas <ruipbarradas using sapo.pt> wrote:
>
> Hello,
>
> Inline.
>
> Às 14:26 de 15/07/19, Duncan Murdoch escreveu:
> > On 15/07/2019 8:57 a.m., Rui Barradas wrote:
> >> Hello,
> >>
> >> Clean R 3.6.1 session on Ubuntu 19.04, RStudio 1.1.453. sessionInfo() at
> >> the end.
> >
> > That's not what I'd call a "clean session" with all those packages loaded:
>
> You are right, but when I wrote that it *was* clean. Then, for some
> reason I don't understand, RStudio loaded them all. Guess I'll have to
> check what is going on here.
>
> >
> >> loaded via a namespace (and not attached):
> >>     [1] sos_2.0-0           nlme_3.1-140        matrixStats_0.54.0
> >>     [4] fs_1.2.7            xts_0.11-2          usethis_1.5.0
> >>     [7] lubridate_1.7.4     devtools_2.0.2      RColorBrewer_1.1-2
> >>    [10] rprojroot_1.3-2     rbenchmark_1.0.0    tools_3.6.1
> >>    [13] backports_1.1.4     R6_2.4.0            rpart_4.1-15
> >>    [16] Hmisc_4.2-0         lazyeval_0.2.2      colorspace_1.4-1
> >>    [19] nnet_7.3-12         npsurv_0.4-0        withr_2.1.2
> >>    [22] tidyselect_0.2.5    gridExtra_2.3       prettyunits_1.0.2
> >>    [25] processx_3.3.0      curl_3.3            compiler_3.6.1
> >>    [28] cli_1.1.0           htmlTable_1.13.1    randomNames_1.4-0.0
> >>    [31] dvmisc_1.1.3        desc_1.2.0          tseries_0.10-46
> >>    [34] scales_1.0.0        checkmate_1.9.1     lmtest_0.9-36
> >>    [37] fracdiff_1.4-2      mvtnorm_1.0-10      quadprog_1.5-6
> >>    [40] callr_3.2.0         stringr_1.4.0       digest_0.6.18
> >>    [43] foreign_0.8-71      rio_0.5.16          base64enc_0.1-3
> >>    [46] stocks_1.1.4        pkgconfig_2.0.2     htmltools_0.3.6
> >>    [49] sessioninfo_1.1.1   readxl_1.3.1        htmlwidgets_1.3
> >>    [52] rlang_0.3.4         TTR_0.23-4          rstudioapi_0.10
> >>    [55] quantmod_0.4-14     MLmetrics_1.1.1     zoo_1.8-5
> >>    [58] zip_2.0.1           acepack_1.4.1       dplyr_0.8.0.1
> >>    [61] car_3.0-2           magrittr_1.5        Formula_1.2-3
> >>    [64] Matrix_1.2-17       Rcpp_1.0.1          munsell_0.5.0
> >>    [67] abind_1.4-5         stringi_1.4.3       forecast_8.6
> >>    [70] yaml_2.2.0          carData_3.0-2       MASS_7.3-51.3
> >>    [73] pkgbuild_1.0.3      plyr_1.8.4          grid_3.6.1
> >>    [76] parallel_3.6.1      forcats_0.4.0       crayon_1.3.4
> >>    [79] lattice_0.20-38     haven_2.1.0         splines_3.6.1
> >>    [82] hms_0.4.2           knitr_1.22          ps_1.3.0
> >>    [85] pillar_1.4.0        pkgload_1.0.2       urca_1.3-0
> >>    [88] glue_1.3.1          lsei_1.2-0          babynames_1.0.0
> >>    [91] latticeExtra_0.6-28 data.table_1.12.2   remotes_2.0.4
> >>    [94] cellranger_1.1.0    testthat_2.1.0      gtable_0.3.0
> >>    [97] purrr_0.3.2         assertthat_0.2.1    ggplot2_3.1.1
> >> [100] openxlsx_4.1.0      xfun_0.6            survey_3.35-1
> >> [103] survival_2.44-1.1   timeDate_3043.102   tibble_2.1.1
> >> [106] memoise_1.1.0       cluster_2.0.8       toOrdinal_1.1-0.0
> >> [109] fitdistrplus_1.0-14 brew_1.0-6
> >>
> >>
> >
> > However, even when I load almost all of those, I don't see the problem.
> > I've got the same R version, and a newer Rstudio version (mine is
> > 1.2.1335 on a Mac).  I couldn't load ] "latticeExtradata.table" and
> > "fitdistrplusbrew", and I didn't check my package versions against yours.
> >
> > I'd suspect the issue is with RStudio somehow, because it needs to do a
> > lot to maintain its environment view.  Do you see this when running R
> > from the command line?
> >
> > Duncan Murdoch
> >
>
> It's a RStudio thing.
> Tested with
>
> Rscript --vanilla test.R
>
>
> the result is the expected one.
> (test.R has the obvious contents.)
>
>
> Rui Barradas
>
> ______________________________________________
> R-devel using r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel



More information about the R-devel mailing list