I can't answer your question (about your R programming skills) but the behavior you complain about is as documented. In particular:
"Thus the default behaviour is to use partial matching only when extracting from recursive objects (except environments) by $. Even in that case, warnings can be switched on by options <http://127.0.0.1:39592/help/library/base/help/options>(warnPartialMatchDollar = TRUE)." So the solution is not to use $ for list extraction/replacement. Though convenient, it is prone to such issues. Instead, the following works (as does your suggested solution, of course): > var <- list() > var[["options"]][["misc"]][["abc"]] <- "123" > var[["options"]][["mi"]][["something"]] <- 13 > var $options $options$misc $options$misc$abc [1] "123" $options$mi $options$mi$something [1] 13 Bert Gunter "The trouble with having an open mind is that people keep coming along and sticking things into it." -- Opus (aka Berkeley Breathed in his "Bloom County" comic strip ) On Tue, May 26, 2020 at 10:45 AM John Harrold <john.m.harr...@gmail.com> wrote: > Hello, > > > I'm testing some code in R 4.0, and I'm having an issue with the following" > > # ------------- > rm(list=ls()) > graphics.off() > #load("/tmp/post.RData") > var = list(); > # If I uncomment this it fixes things: > # var$options = list(mi = list(), > # misc = list()) > # > var$options$misc$abc = "123" > var$options$mi$something = 13 > #------------ > > This is a stripped down example but it exhibits the issue I"m having. > Basically when I create the list element var$options$mi the contents of > var$options$misc move over to var$options$mi. And what was in > var$options$misc become NULL: > > So now var$options looks like: > > var$options > $misc > $misc$abc > NULL > > $mi > $mi$abc > [1] "123" > $mi$something > [1] 13 > > This worked (still works) in R 3.5.1. I understand partial matching, but is > this normal lists moving over to elements like this? I can uncomment the > text mentioned in the example and it seems to fix it, but I'm wondering if > this is a bug or just my poor programming coming back to bite me. > > I've included my sessionInfo() at the bottom. > > Thanks > John > :wq > > > sessionInfo() > > R version 4.0.0 (2020-04-24) > > Platform: x86_64-apple-darwin17.0 (64-bit) > > Running under: macOS Mojave 10.14.5 > > > Matrix products: default > > BLAS: > /Library/Frameworks/R.framework/Versions/4.0/Resources/lib/libRblas.dylib > > LAPACK: > /Library/Frameworks/R.framework/Versions/4.0/Resources/lib/libRlapack.dylib > > > locale: > > [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8 > > > attached base packages: > > [1] stats graphics grDevices utils datasets methods base > > > other attached packages: > > [1] gdata_2.18.0 ggplot2_3.3.0 deSolve_1.28 > > > loaded via a namespace (and not attached): > > [1] Rcpp_1.0.4.6 gtools_3.8.2 withr_2.2.0 assertthat_0.2.1 > > [5] dplyr_0.8.5 digest_0.6.25 crayon_1.3.4 grid_4.0.0 > > [9] R6_2.4.1 lifecycle_0.2.0 gtable_0.3.0 magrittr_1.5 > > [13] scales_1.1.1 pillar_1.4.4 rlang_0.4.6 vctrs_0.3.0 > > [17] ellipsis_0.3.1 glue_1.4.1 purrr_0.3.4 munsell_0.5.0 > > [21] compiler_4.0.0 pkgconfig_2.0.3 colorspace_1.4-1 tidyselect_1.1.0 > > [25] tibble_3.0.1 > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide > http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. > [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.