[R] Unexpected/undocumented behavior of 'within': dropping variable names that start with '.'

Martin Maechler maechler at stat.math.ethz.ch
Wed Sep 23 12:32:06 CEST 2015


>>>>> Hadley Wickham <h.wickham at gmail.com>
>>>>>     on Sun, 20 Sep 2015 14:23:43 -0400 writes:

    > The problem is that within.data.frame calls as.list.environment with
    > the default value of all.names = FALSE. I doubt this is a deliberate
    > feature, and is more likely to be a minor oversight.

Indeed;
Thank you, Hadley (and Brian)!

It is fixed now in R-devel  .... and will be ported to R-patched
probably tomorrow.

Martin

    > Hadley

    > On Sun, Sep 20, 2015 at 11:49 AM, Brian <zenlines at gmail.com> wrote:
    >> Dear List,
    >> 
    >> Somewhere I missed something, and now I'm really missing something!
    >> 
    >>> d.f <- data.frame(.id = c(TRUE, FALSE, TRUE), dummy = c(1, 2, 3), a =
    >> c(1, 2, 3), b = c(1, 2, 3) + 1)
    >> > within(d.f, {d = a + b})
    >> dummy a b d
    >> 1     1 1 2 3
    >> 2     2 2 3 5
    >> 3     3 3 4 7
    >> > d.f <- data.frame(.id = c(TRUE, FALSE, TRUE), .dummy = c(1, 2, 3), a
    >> = c(1, 2, 3), b = c(1, 2, 3) + 1)
    >> > within(d.f, {d = a + b})
    >> a b d
    >> 1 1 2 3
    >> 2 2 3 5
    >> 3 3 4 7
    >> 
    >> Could somebody please explain to me why this does this? I think could be
    >> considered a feature (for lots of calculations within a data frame you
    >> don't have to remove all extra variables at the end).  I just wish it
    >> was documented.
    >> 
    >> Cheers,
    >> Brian
    >> 
    >> 
    >> sessionInfo()
    >> R version 3.1.0 (2014-04-10)
    >> Platform: x86_64-pc-linux-gnu (64-bit)
    >> 
    >> locale:
    >> [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C
    >> [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8
    >> [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8
    >> [7] LC_PAPER=en_US.UTF-8       LC_NAME=C
    >> [9] LC_ADDRESS=C               LC_TELEPHONE=C
    >> [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
    >> 
    >> attached base packages:
    >> [1] splines   grid      stats     graphics  grDevices utils     datasets
    >> [8] methods   base
    >> 
    >> other attached packages:
    >> [1] scales_0.2.4       plyr_1.8.3         reshape2_1.4
    >> ccchDataProc_0.7
    >> [5] ccchTools_0.6      xtable_1.7-4       tables_0.7.79      Hmisc_3.14-5
    >> [9] Formula_1.1-2      survival_2.37-7    ggplot2_1.0.1
    >> IDPmisc_1.1.17
    >> [13] lattice_0.20-29    myRplots_1.1       myRtools_1.2       meteoconv_0.1
    >> [17] pixmap_0.4-11      RColorBrewer_1.0-5 maptools_0.8-30    sp_1.1-1
    >> [21] mapdata_2.2-3      mapproj_1.2-2      maps_2.3-9         chron_2.3-45
    >> [25] MASS_7.3-35
    >> 
    >> loaded via a namespace (and not attached):
    >> [1] acepack_1.3-3.3     cluster_1.15.2      colorspace_1.2-4
    >> [4] compiler_3.1.0      data.table_1.9.4    digest_0.6.4
    >> [7] foreign_0.8-61      gtable_0.1.2        labeling_0.3
    >> [10] latticeExtra_0.6-26 munsell_0.4.2       nnet_7.3-8
    >> [13] proto_0.3-10        Rcpp_0.12.0         rpart_4.1-8
    >> [16] stringr_0.6.2       tools_3.1.0
    >> > within
    >> function (data, expr, ...)
    >> UseMethod("within")
    >> <bytecode: 0x26d32c8>
    >> <environment: namespace:base>
    >> 
    >> ______________________________________________
    >> R-help at 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.



    > -- 
    > http://had.co.nz/

    > ______________________________________________
    > R-help at 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.



More information about the R-help mailing list