[R] How to use 'switch' with strings containing spaces?

David Winsemius dwinsemius at comcast.net
Wed Aug 17 00:52:02 CEST 2011


On Aug 16, 2011, at 4:53 PM, Mauricio Cornejo wrote:

> Hi,
>
> Does anyone know if the alternatives in the 'switch' function can be  
> specified as strings containing spaces?  Neither of the two  
> approaches below works.
>
>
> switch(expr, "Choice 1"="My first choice", "Choice 2"="My 2nd  
> choice", "Choice 3"="My 3rd choice")
>
>
> x <- c("Choice 1", "Choice 2", "Choice 3")
> switch(expr, x[1]="My first choice", x[2]="My 2nd choice", x[3]="My  
> 3rd choice")
>
>
> If the intended functionality

Right... and what might that be... in a natural language if you  
please. Deducing intention from failed efforts in a computer language  
are a request for mind-reading.

(Puts envelope to forehead. The answer is probably ....  ?match )

switch() is designed to dispatch to a function call. match() is  
designed to return an item from a vector.

> can be achieved by a different function(s), I'd most appreciate such  
> a suggestion as well.
>

 > x <- c("Choice 1", "Choice 2", "Choice 3")
 > x <- c("Choice 1", "Choice 2", "Choice 3")
 > match("Choice 2", x)
{1] 2   # returns a vector easily used as index to another vector

 > c("My first choice", "My 2nd choice","My 3rd choice") 
[ match("Choice 2", x)]
[1] "My 2nd choice"


David Winsemius, MD
West Hartford, CT



More information about the R-help mailing list