[R] replace multiple values in vector at once
David Winsemius
dwinsemius at comcast.net
Sat Jul 13 00:05:52 CEST 2013
On Jul 12, 2013, at 2:56 PM, Trevor Davies wrote:
> 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]
That fairly tortured compared with:
x <- c(rep('x',3),rep('y',3),rep('z',3))
x1b <- as.character(1:3)[ match(x, c("x","y","z") ) ]
x1b
Furthermore, your solution does not deliver the answer you expected.
--
David.
>
> 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.
David Winsemius
Alameda, CA, USA
More information about the R-help
mailing list