From jeff.a.ryan at gmail.com  Mon Mar  9 15:31:13 2009
From: jeff.a.ryan at gmail.com (Jeff Ryan)
Date: Mon, 9 Mar 2009 09:31:13 -0500
Subject: [Rd] bug of *switch* function
In-Reply-To: <bc1181630903090655o1db1a397leb831a804c202761@mail.gmail.com>
References: <bc1181630903090655o1db1a397leb831a804c202761@mail.gmail.com>
Message-ID: <e8e755250903090731g66ba567fq63c37810f7c9b8d@mail.gmail.com>

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 <guangchuangyu at 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: guangchuangyu at gmail.com
> -~----------~----~----~----~------~----~------~--~---
>
> ? ? ? ?[[alternative HTML version deleted]]
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>



-- 
Jeffrey Ryan
jeffrey.ryan at insightalgo.com

ia: insight algorithmics
www.insightalgo.com



[Rd] bug of *switch* function
Jeff Ryan