Hi Simeon,
I played around a little with Vectorize and mapply, but I couldn't make
it work :-( So, my best guess would be a simple loop like this:
result <- as.character(paste(letters,colours(),"stuff",LETTERS))
target <- c("red","blue","green","gray")
for ( new.color in target ) { result[grep(new.color,result)] <- new.color }
Best of luck,
Stephan
simeon duckworth schrieb:
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.kola...@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.kola...@gmx.de
wrote:
Hi Simeon,
?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]]
______________________________________________
R-help@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.
______________________________________________
R-help@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.