yet another attempt,
colours <- as.character(paste(letters,colours(),"stuff",LETTERS))
target <- c("red","blue","green","gray")
matches <- melt(sapply(target, grep, x=colours))
colours[matches$value] <- matches$L1
(probably a worse idea than a straight for loop, though)
baptiste
On 28 Mar 2009, at 17:08, Stephan Kolassa wrote:
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.
_____________________________
Baptiste AuguiƩ
School of Physics
University of Exeter
Stocker Road,
Exeter, Devon,
EX4 4QL, UK
Phone: +44 1392 264187
http://newton.ex.ac.uk/research/emag
______________________________________________
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.