stephan
sorry for not being clear - but thats exactly what i want.
i'd like to replace every complex string that contains "red" with just
"red", and then so on with "blue", "yellow" etc
my data is of the form
"xxxxx xx xx xxxxx red xx xxx xx"
"xx xxx xxx xx blue xx xx xx xx x"
"x xx xxxxxxxx xx xx xx xxxx red"
"red xx xx xx xx xx"
"xx xx xx xx xx xx"
"xx x x x x xxxx"
which i'd like to replace with
"red"
"blue"
"red"
"other"
"other"
thanks
On Sat, Mar 28, 2009 at 2:38 PM, Stephan Kolassa <Stephan.Kolassa at gmx.de>wrote:
Hi Simeon,
I'm slightly unclear on what exactly you are trying to achieve... Are you
trying to replace every entry of colours which *contains* "red" by "red",
dropping the rest of the entry? And same with "blue"?
A short example "before & after" would be helpful...
Best,
Stephan
simeon duckworth schrieb:
thanks stephan. i'd been trying to make gsub work, but couldnt make it
replace the whole expression. so i'd resorted to trying to loop with grep
-
but with two problems. firstly, i cant seem to make the loop 'remember'
the substitutions it makes (see below). secondly, it feels like this is a
really inefficient way of doing something quite simple anyhow.
colours <- as.character(paste(letters,colours(),"stuff",LETTERS))
target <- c("red","blue","green","gray")
new.colour <-colours
for (i in length(target)) {
x <- target[i]
new.colour[grep((x),new.colour)] <- x
return(new.colour)
}
On Sat, Mar 28, 2009 at 9:45 AM, Stephan Kolassa <Stephan.Kolassa at gmx.de
?gsub
HTH,
Stephan
simeon duckworth schrieb:
I am trying to simplify a text variable by matching and replacing it
with
a
string in another vector
so for example in
colours <- paste(letters,colours(),"stuff",LETTERS)
find and replace with ("red","blue","green","gray","yellow","other") -
irrespective of case
its a large dataset, so i'd like to be able to do this as efficiently as
possible.
thanks for any help
[[alternative HTML version deleted]]