Because "<-" assigs a value. It does not name the alternatives. Again, please read ?switch.
These two examples are the same: > organism <- 'foo' > (species <- switch(organism, human <- "HS", fly <- "DM", yeast <- "SC")) [1] "HS" > (species <- switch(organism, "HS", "DM", "SC")) [1] "HS" Josh -- http://quantemplation.blogspot.com On Mon, Mar 9, 2009 at 9:35 AM, guangchuang yu <guangchuan...@gmail.com> wrote: > But Why ? > > Why can not use "<-" ? > > On Mon, Mar 9, 2009 at 10:31 PM, Jeff Ryan <jeff.a.r...@gmail.com> wrote: > >> This isn't a bug in R. >> >> You are assigning within the switch statement, and it is returning the >> first TRUE value (human). >> >> Use "=" not "<-" >> >> species <- switch(organism, human="HS", fly="DM", yeast="SC") >> > species >> [1] "SC" >> >> >> HTH >> Jeff >> >> On Mon, Mar 9, 2009 at 8:55 AM, guangchuang yu <guangchuan...@gmail.com> >> wrote: >> > Hi, >> > >> > When I call the *switch* function first time, it works. but when I call >> it >> > at the second time, it does nothing. The version I use is R version 2.9.0 >> > Under development (unstable) (2009-02-21 r47969) >> > >> > >> > here is the output: >> > >> >> organism="human" >> >> species <- switch(organism, >> > human <- "Hs", >> > fly <- "Dm", >> > mouse <- "Mm", >> > rat <- "Rn", >> > yeast <- "Sc" >> > ) >> > species <- switch(organism, >> > + human <- "Hs", >> > + fly <- "Dm", >> > + mouse <- "Mm", >> > + rat <- "Rn", >> > + yeast <- "Sc" >> > + ) >> >> species >> > [1] "Hs" >> >> organism="yeast" >> >> species <- switch(organism, >> > human <- "Hs", >> > fly <- "Dm", >> > mouse <- "Mm", >> > rat <- "Rn", >> > yeast <- "Sc" >> > ) >> > species <- switch(organism, >> > + human <- "Hs", >> > + fly <- "Dm", >> > + mouse <- "Mm", >> > + rat <- "Rn", >> > + yeast <- "Sc" >> > + ) >> >> species >> > [1] "Hs" >> > >> > >> > when I change *organism* to "yeast", and call *switch* function again, >> > *species* suppose to be changed to "Sc", but it remain it's original >> value. >> > >> > You can see my screenshot at >> > http://ygc.azpala.com/2009/03/09/bug-of-r-29-dev >> > >> > -- >> > Bests, >> > Guangchuang Yu >> > >> > --~--~---------~--~----~------------~-------~--~----~ >> > Rm 848 Dept 9 >> > Institute of Radiation Medicine >> > 27 Taiping Rd. Haidian Dist. >> > Beijing, 100850, China >> > Telephone: (86)-010-66931422 >> > Mobile: +86-13439009806 >> > Email: guangchuan...@gmail.com >> > -~----------~----~----~----~------~----~------~--~--- >> > >> > [[alternative HTML version deleted]] >> > >> > ______________________________________________ >> > R-devel@r-project.org mailing list >> > https://stat.ethz.ch/mailman/listinfo/r-devel >> > >> >> >> >> -- >> Jeffrey Ryan >> jeffrey.r...@insightalgo.com >> >> ia: insight algorithmics >> www.insightalgo.com >> > > > > -- > Bests, > Guangchuang Yu > > --~--~---------~--~----~------------~-------~--~----~ > Rm 848 Dept 9 > Institute of Radiation Medicine > 27 Taiping Rd. Haidian Dist. > Beijing, 100850, China > Telephone: (86)-010-66931422 > Mobile: +86-13439009806 > Email: guangchuan...@gmail.com > -~----------~----~----~----~------~----~------~--~--- > > [[alternative HTML version deleted]] > > ______________________________________________ > R-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel > ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel