[R] how to use the switch statement

Matthias Braeunig mb.atelier at web.de
Tue Nov 21 10:32:40 CET 2006


convert your.data.frame$x to ?factor and ?levels

> x <- readLines()
AT
BB
B1
B1
CC
CC
T6
B1
CC
BB
TT
AT
AT
AT
TT
BB

# you would start here with your.data.frame$x

> x <- factor(x,levels=unique(x))	# preserve ordering
> x
 [1] AT BB B1 B1 CC CC T6 B1 CC BB TT AT AT AT TT BB
Levels: AT BB B1 CC T6 TT
> levels(x) <- paste("A",seq(levels(x)),sep="")
> x
 [1] A1 A2 A3 A3 A4 A4 A5 A3 A4 A2 A6 A1 A1 A1 A6 A2
Levels: A1 A2 A3 A4 A5 A6

HTH

Biscarini, Filippo wrote:
> Good morning,
>  
> I am trying to recode the values of a column in a data frame and,
> instead of using a long series of if/else statements I would like to use
> a switch (as it is, for instance, in the C programming language).
>  
> I have a column of this type:
>  
> AT
> BB
> B1
> B1
> CC
> CC
> T6
> B1
> CC
> BB
> TT
> AT
> AT
> AT
> TT
> BB
>  ...
>  
> and I need to change this coding (if it's AT then it should be A1, if
> it's BB then it should be A2, and so on ...)
>  
> I was trying to use switch in the following way:
>  
> switch(column_name,
> 'AT'='A1'
> 'BB'='A2'
> ...)
>  
> but it's not working.
> The R help is particularly cryptic on this point.
>  
> Can anyone help me?
>  
> Thank you very much,
>  
> Filippo Biscarini
>  
> University of Wageningen (The Netherlands)



More information about the R-help mailing list