One way is: a <- c(" %L H*L L*H H%", "%L H* H%", "%L L*H %", "%L L*H %" )
> sub("^.*(^| )([^ ]+ [^ ]+$)","\\2",a) [1] "L*H H%" "H* H%" "L*H %" "L*H %" Just be aware that this is not terribly efficient for very large strings. -s On Fri, Jun 26, 2009 at 7:21 AM, Fredrik Karlsson<dargo...@gmail.com> wrote: > Dear list, > > Sorry for asking this very silly question on the list, but I seem to > have made my life complicated by going into string manipulation in > vectors. > What I need is to get the last part of a sting (the two last tokens, > separated by a space), and of course, this should be done for all > strings in a vector, creating a new vector of exual size. > > So, > > a <- c(" %L H*L L*H H%", "%L H* H%", "%L L*H %", "%L L*H %" ) > > should be made into a vector > > c(" L*H H%", "H* H%", "L*H %", "L*H %" ) > > I have tried strsplit, but it seems to produce a structure I cannot > get to work in this context. Any ideas on how to solve this? > > Thankful for all the help I can get. > > /Fredrik > > > -- > "Life is like a trumpet - if you don't put anything into it, you don't > get anything out of it." > > ______________________________________________ > 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.