[R] replace multiple values in vector at once

Law, Jason Jason.Law at portlandoregon.gov
Sat Jul 13 01:03:23 CEST 2013


In the plyr package there are also the functions revalue and mapvalues:

library(plyr)
x <- c("a", "b", "c")
revalue(x, c(a = "A", c = "C"))
mapvalues(x, c("a", "c"), c("A", "C"))

mapvalues works on numeric, character and factor.

Jason

-----Original Message-----
From: r-help-bounces at r-project.org [mailto:r-help-bounces at r-project.org] On Behalf Of Trevor Davies
Sent: Friday, July 12, 2013 2:57 PM
To: r-help at r-project.org
Subject: Re: [R] replace multiple values in vector at once

I always think that replying to your own r-help feels silly but it's good to close these things out.

here's my hack solution:

x1<-merge(data.frame(A=x),data.frame(A=c('x','y','z'),B=c(1,2,2)),by='A')[,2]

Well that works and should for my more complex situation.  If anyone has something a little less heavy handed I'd live to hear it.

Have a great weekend.


On Fri, Jul 12, 2013 at 2:18 PM, Trevor Davies <davies.trevor at gmail.com>wrote:

>
> I'm trying to find a function that can replace multiple instances of 
> values or characters in a vector in a one step operation.  As an 
> example, the vector:
>
> x <- c(rep('x',3),rep('y',3),rep('z',3))
>
> > x
> [1] "x" "x" "x" "y" "y" "y" "z" "z" "z"
>
> I would simply like to replace all of the x's with 1's, y:2 & z:3 (or 
> other characters).
> i.e:
> > x
> [1] "1" "1" "1" "2" "2" "2" "3" "3" "3"
>
> Of course, I'm aware of the replace function but this obviously gets a 
> little unwieldy when there are :
> x<-replace(x,x=='x',1)
> x<-replace(x,y=='x',2)
> x<-replace(x,z=='x',3)
>
> but I can't figure out how to do it in a one stop operation.  My real 
> needs is more complex obviously.  This is one of those seemingly 
> simple r-operations that should be obvious but I'm coming up empty on this one.
>
> Thanks for the help.
> Trevor
>

	[[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.



More information about the R-help mailing list