[R] $ subset operator behavior in lapply
Hilmar Berger
h||m@r@berger @end|ng |rom gmx@de
Fri Oct 28 09:12:51 CEST 2022
Hi Andrew,
thanks a lot, that fully explains it.
Sorry for the HTML text. For the record I put the original code again
below.
Best regards
Hilmar
On 27.10.22 18:34, Andrew Simmons wrote:
> $ does not evaluate its second argument, it does something like
> as.character(substitute(name)).
>
> You should be using
>
> lapply(list, function(x) x$a)
>
> or
>
> lapply(list, `[[`, "a")
>
>
> On Thu, Oct 27, 2022, 12:29 Hilmar Berger <hilmar.berger using gmx.de> wrote:
>
> Dear all,
>
> I'm a little bit surprised by the behavior of the $ operator when used
> in lapply - any indication what might be wrong is appreciated.
>
> xx = list(A=list(a=1:3, b=LETTERS[1:3]),"B"=list(a=7:9, b=LETTERS[7:9]))
> lapply(xx,`$`,"a")
$A
NULL
$B
NULL
> `$`(xx[[1]],"a")
[1] 1 2 3
> lapply(xx,`[`,"a")
$A
$A$a
[1] 1 2 3
$B
$B$a
[1] 7 8 9
> Any idea why I
> `$`(object, name) works when applied to the single list element
> but not
> within lapply (in contrast to `[`)?
> I checked the help page of the extraction operators but could not find
> anything that explains this. Thanks and best regards Hilmar >
> sessionInfo() R version 4.2.1 (2022-06-23) Platform:
> x86_64-pc-linux-gnu
> (64-bit) Running under: Ubuntu 20.04.5 LTS Matrix products: default
> BLAS: /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3 LAPACK:
> /usr/lib/x86_64-linux-gnu/openblas-pthread/liblapack.so.3 locale: [1]
> LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C [3] LC_TIME=de_DE.UTF-8
> LC_COLLATE=en_US.UTF-8 [5] LC_MONETARY=de_DE.UTF-8
> LC_MESSAGES=en_US.UTF-8 [7] LC_PAPER=de_DE.UTF-8 LC_NAME=C [9]
> LC_ADDRESS=C LC_TELEPHONE=C [11] LC_MEASUREMENT=de_DE.UTF-8
> LC_IDENTIFICATION=C attached base packages: [1] stats graphics
> grDevices
> utils datasets methods base loaded via a namespace (and not attached):
> [1] compiler_4.2.1
>
> [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help using 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
> <http://www.R-project.org/posting-guide.html>
> and provide commented, minimal, self-contained, reproducible code.
>
[[alternative HTML version deleted]]
More information about the R-help
mailing list