Hi folks, I am starter for R. While I tried list as following:> l <- list() > l$fooNULL> l$foobar <- 1 > l$foo[1] 1 Apparently, foo and foobar are different name for elements in list (actually foo does not exist). But why they are sharing same value? Thanks a lot! Max [[alternative HTML version deleted]]
Hi Max, This is known as fuzzy matching. When using `$`, if R can uniquely match the element name based on what is typed, it returns it. Thus, in your example, foo uniquely matches foobar, but if you had foobar, foobox, $foo would not be a unique match. Cheers, Josh On Mon, Mar 25, 2013 at 12:21 PM, Andrew Lin <hlin09pu at gmail.com> wrote:> Hi folks, > > I am starter for R. While I tried list as following: > >> l <- list() >> l$foo > NULL >> l$foobar <- 1 >> l$foo > [1] 1 > > Apparently, foo and foobar are different name for elements in list (actually > foo does not exist). But why they are sharing same value? > > Thanks a lot! > > Max > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at r-project.org mailing list > 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.-- Joshua Wiley Ph.D. Student, Health Psychology University of California, Los Angeles http://joshuawiley.com/ Senior Analyst - Elkhart Group Ltd. http://elkhartgroup.com
If you use the shortcut $ then R will use partial matching to hunt for the list element you mean. l$fo will also match. l[["foo"]] will not match - the full subsetting construct doesn't use partial matching. I think the intro to R covers this, and you can also see ?"$" ?"[[" Sarah On Monday, March 25, 2013, Andrew Lin wrote:> Hi folks, > > I am starter for R. While I tried list as following: > > > l <- list() > > l$foo > NULL > > l$foobar <- 1 > > l$foo > [1] 1 > > Apparently, foo and foobar are different name for elements in list > (actually > foo does not exist). But why they are sharing same value? > > Thanks a lot! > > Max > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help@r-project.org <javascript:;> mailing list > 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. >-- Sarah Goslee http://www.stringpage.com http://www.sarahgoslee.com http://www.functionaldiversity.org [[alternative HTML version deleted]]
Hello Starter Before posting, please read relevant Help files! ?"$" where it tells you: "x$name is equivalent to x[["name", exact = FALSE]]. Also, the partial matching behavior of [[ can be controlled using the exact argument." ..etc. -- Bert On Mon, Mar 25, 2013 at 12:21 PM, Andrew Lin <hlin09pu@gmail.com> wrote:> Hi folks, > > I am starter for R. While I tried list as following: > > > l <- list() > > l$foo > NULL > > l$foobar <- 1 > > l$foo > [1] 1 > > Apparently, foo and foobar are different name for elements in list > (actually > foo does not exist). But why they are sharing same value? > > Thanks a lot! > > Max > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help@r-project.org mailing list > 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. >-- Bert Gunter Genentech Nonclinical Biostatistics Internal Contact Info: Phone: 467-7374 Website: http://pharmadevelopment.roche.com/index/pdb/pdb-functional-groups/pdb-biostatistics/pdb-ncb-home.htm [[alternative HTML version deleted]]