How about this (I'm showing it as a pipe because it's easier to read that way):

library(magrittr)
"f 147/1315/587 2820/1320/587 3624/1321/587 1852/1322/587" %>%
  strsplit(' ') %>%
  unlist %>%
  sub('^[^/]*/*','',.) %>%
  sub('^[^/]*/*','',.) %>%
  paste(collapse = ' ')

Georges Monette

--
Georges Monette, PhD P.Stat.(SSC) | Associate Professor. Faculty of Science, 
Department of Mathematics & Statistics | North 626 Ross Building | York 
University | 4700 Keele Street, Toronto, ON M3J 1P3 | Telephone: 416-736-5250 | 
Fax: 416-736-5757 | E-Mail: geor...@yorku.ca


On 2017-10-09 11:02 AM, Duncan Murdoch wrote:
I have a file containing "words" like


a

a/b

a/b/c

where there may be multiple words on a line (separated by spaces).  The a, b, and c strings can contain non-space, non-slash characters. I'd like to use gsub() to extract the c strings (which should be empty if there are none).

A real example is

"f 147/1315/587 2820/1320/587 3624/1321/587 1852/1322/587"

which I'd like to transform to

" 587 587 587 587"

Another real example is

"f 1067 28680 24462"

which should transform to "   ".

I've tried a few different regexprs, but am unable to find a way to say "transform words by deleting everything up to and including the 2nd slash" when there might be zero, one or two slashes.  Any suggestions?

Duncan Murdoch

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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 -- To UNSUBSCRIBE and more, see
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.

Reply via email to