Has something changed, but I missed it?
My recollection is that $ extraction used partial matching.
E.g. if one did
junk <- list(yuck=1,yurk=2,y=3)
junk$y
then one would get 1 as the result; probably *not* the desired result.
See fortunes::fortune("toad").
To get the desired result, one would need to use junk[["y"]].
Likewise junk$yu would give 1; to get the value of "yurk", one would
need to use junk$yur or junk$yurk or (better?) junk[["yurk"]].
However, either my recollection is wrong, or something has changed.
When I do junk$y I get 3 (the "right" answer; the same as
junk[["y"]]).
When I do junk$yu I get NULL (just as if I'd done junk[["yu"]]).
So: has something changed, or am I miss-remembering, or am I completely
confused about the whole issue?
Thanks for any enlightenment.
cheers,
Rolf Turner
--
Honorary Research Fellow
Department of Statistics
University of Auckland
Phone: +64-9-373-7599 ext. 88276
junk$y extracts the element named "y" because it found an exact match for the name. junk$yu extracts nothing because it does not find an exact match and finds multiple partial matches. junk$yuc or junk$yur would work because it finds no exact match and then exactly one partial match. On Tue, Jan 24, 2023, 17:04 Rolf Turner <r.turner at auckland.ac.nz> wrote:> > Has something changed, but I missed it? > > My recollection is that $ extraction used partial matching. > > E.g. if one did > > junk <- list(yuck=1,yurk=2,y=3) > junk$y > > then one would get 1 as the result; probably *not* the desired result. > See fortunes::fortune("toad"). > > To get the desired result, one would need to use junk[["y"]]. > > Likewise junk$yu would give 1; to get the value of "yurk", one would > need to use junk$yur or junk$yurk or (better?) junk[["yurk"]]. > > However, either my recollection is wrong, or something has changed. > When I do junk$y I get 3 (the "right" answer; the same as junk[["y"]]). > When I do junk$yu I get NULL (just as if I'd done junk[["yu"]]). > > So: has something changed, or am I miss-remembering, or am I completely > confused about the whole issue? > > Thanks for any enlightenment. > > cheers, > > Rolf Turner > > -- > Honorary Research Fellow > Department of Statistics > University of Auckland > Phone: +64-9-373-7599 ext. 88276 > > ______________________________________________ > 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. >[[alternative HTML version deleted]]
I tried this again with R 2.15.3, the oldest version I have installed, and I still got the same behaviour. It extracts the first exact match, then the only partial match, then NULL. On Tue, Jan 24, 2023 at 5:04 PM Rolf Turner <r.turner at auckland.ac.nz> wrote:> > > Has something changed, but I missed it? > > My recollection is that $ extraction used partial matching. > > E.g. if one did > > junk <- list(yuck=1,yurk=2,y=3) > junk$y > > then one would get 1 as the result; probably *not* the desired result. > See fortunes::fortune("toad"). > > To get the desired result, one would need to use junk[["y"]]. > > Likewise junk$yu would give 1; to get the value of "yurk", one would > need to use junk$yur or junk$yurk or (better?) junk[["yurk"]]. > > However, either my recollection is wrong, or something has changed. > When I do junk$y I get 3 (the "right" answer; the same as junk[["y"]]). > When I do junk$yu I get NULL (just as if I'd done junk[["yu"]]). > > So: has something changed, or am I miss-remembering, or am I completely > confused about the whole issue? > > Thanks for any enlightenment. > > cheers, > > Rolf Turner > > -- > Honorary Research Fellow > Department of Statistics > University of Auckland > Phone: +64-9-373-7599 ext. 88276 > > ______________________________________________ > 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.