Hi all, Here I am trying to implement the switch() function to choose value of a variable depending on the value of an input variable : temp1 <- "1" temp1.name <- switch(temp1, 1 == "aa", 2 == "bb", 3 == "cc", 4 == "dd", 5 == "ee") Goal is if "temp1" equals to 1, then value of temp1.name would be "aa". However I am getting following answer :> temp1 <- "1" > temp1.name <- switch(temp1,+ 1 == "aa", + 2 == "bb", + 3 == "cc", + 4 == "dd", + 5 == "ee")> temp1.name[1] FALSE Can anyone please point me where I am doing wrong? Thanks, [[alternative HTML version deleted]]
R is confused about the type in the switch, reads it as numeric instead of a character. Try : temp1.name <- switch(temp1, "1" = "aa", "2" = "bb", "3" = "cc", "4" = "dd", "5" = "ee")> temp1.name[1] "aa" cheers Joris On Wed, Jun 9, 2010 at 12:36 PM, Megh Dal <megh700004 at yahoo.com> wrote:> Hi all, Here I am trying to implement the switch() function to choose value of a variable depending on the value of an input variable : > > temp1 <- "1" > ????????????? temp1.name <- switch(temp1, > ????????????????????????????????? 1 == "aa", > ????????????????????????????????? 2 == "bb", > ????????????????????????????????? 3 == "cc", > ????????????????????????????????? 4 == "dd", > ????????????????????????????????? 5 == "ee") > > Goal is if "temp1" equals to 1, then value of temp1.name would be "aa". However I am getting following answer : > >> temp1 <- "1" >>?????????????? temp1.name <- switch(temp1, > +?????????????????????????????????? 1 == "aa", > +?????????????????????????????????? 2 == "bb", > +?????????????????????????????????? 3 == "cc", > +?????????????????????????????????? 4 == "dd", > +?????????????????????????????????? 5 == "ee") >> temp1.name > [1] FALSE > > > Can anyone please point me where I am doing wrong? > > Thanks, > > > > ? ? ? ?[[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. > >-- Joris Meys Statistical consultant Ghent University Faculty of Bioscience Engineering Department of Applied mathematics, biometrics and process control tel : +32 9 264 59 87 Joris.Meys at Ugent.be ------------------------------- Disclaimer : http://helpdesk.ugent.be/e-maildisclaimer.php
Hi if you do not insist on switch you can use factor to get desired result set.seed(666) x<-sample(1:5,20, replace=T) x [1] 4 1 5 2 2 4 5 3 1 2 4 1 1 1 2 5 1 5 3 3 factor(x, labels=letters[1:5]) [1] d a e b b d e c a b d a a a b e a e c c Levels: a b c d e r-help-bounces at r-project.org napsal dne 09.06.2010 12:36:26:> Hi all, Here I am trying to implement the switch() function to choosevalue of> a variable depending on the value of an input variable : > > temp1 <- "1" > temp1.name <- switch(temp1, > 1 == "aa", > 2 == "bb", > 3 == "cc", > 4 == "dd", > 5 == "ee") > > Goal is if "temp1" equals to 1, then value of temp1.name would be "aa". > However I am getting following answer : > > > temp1 <- "1" > > temp1.name <- switch(temp1, > + 1 == "aa", > + 2 == "bb", > + 3 == "cc", > + 4 == "dd", > + 5 == "ee") > > temp1.name > [1] FALSE > > > Can anyone please point me where I am doing wrong?Have you looked at help ?switch Arguments EXPR an expression evaluating to a number or a character string. ^^^^^^^^^^^^^^^^^^^^^^ ... the list of alternatives. If it is intended that EXPR has a character-string value these will be named, perhaps except for one alternative to be used as a ?default? value. So in your case temp1 <- "1" temp1.name <- switch(temp1, "1" = "aa", "2" = "bb", "3" = "cc", "4" = "dd", "5" = "ee") Basically switch compares your temp1 with all LHS alternatives, if it match it returns RHS. If it does not it will return NULL and in your case it returned probably value 1=="aa" which is FALSE. Regards Petr> > Thanks, > > > > [[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 guidehttp://www.R-project.org/posting-guide.html> and provide commented, minimal, self-contained, reproducible code.