[R] Recode of text variables

Rolf Turner r.turner at auckland.ac.nz
Thu Apr 2 01:40:27 CEST 2009


On 2/04/2009, at 12:22 PM, Andrew McFadden wrote:

> Hi all
>
> I am trying to do a simple recode which I am stumbling on. I figure
> there must be any easy way but haven't come across it.
>
> Given data of A","B","C","D","E","A" it would be nice to recode this
> into say three categories ie A and B becomes "Treat1", C becomes  
> "Treat
> 2" and E becomes "Treat 3".
>
> I tried the car library but it didn't seem to like text. Also it seems
> you can only recode into two categories.
>
>
> library(car)
>
> x<-c("A","B","C","D","E","A")
> x
> recode(x, "c(A,B)='Treat 1'; else='Treat 2'")
> recode(x, "1:2='A'; 3='B'")
>
> In Microsoft access a simple way of recoding is to join two tables  
> in a
> query any simple way of doing the same in R?

y <- c("Treat 1","Treat 1","Treat 2","Blechh!","Treat 3")[match 
(x,LETTERS[1:5])]

is one way of doing it.  There are a brazillion others (using  
factors, levels,
and labels for instance).  Some of them may be sexier than my  
suggestion above.

Note that D gets recoded as ``Blechh!'' in the my suggestion, since  
you didn't
specify what you wanted to happen to D.  If you want D to stay as D,  
replace
"Blechh!" by "D"; or if you want it to becoming ``missing'' replace  
"Blechh!"
by NA.

	cheers,

		Rolf Turner

######################################################################
Attention:\ This e-mail message is privileged and confid...{{dropped:9}}



More information about the R-help mailing list