[R] extracting every nth character from a string...

William Dunlap wdunlap at tibco.com
Tue Sep 8 23:54:03 CEST 2015


charToRaw is not good here because it splits up multibyte characters:
 strsplit(str, "") will split str into its characters.  E.g.,

> str <- c("ggaammmmaa12:\u03b3,  OOmmeeggaa12:\u03A9...")
> rawToChar( charToRaw( str)[ c( TRUE, FALSE)])
[1] "gamma1:³ Omega1:©."

> paste(collapse="", strsplit(str,split=NULL)[[1]][(1:nchar(str))%%2==1])
[1] "gamma1:, Omega2Ω."
> gsub("(.)(.)", "\\1", str)
[1] "gamma1:, Omega2Ω."





Bill Dunlap
TIBCO Software
wdunlap tibco.com

On Tue, Sep 8, 2015 at 2:37 PM, Frank Schwidom <schwidom at gmx.net> wrote:

>
> > rawToChar( charToRaw( str)[ c( TRUE, FALSE)])
> [1] "ACEG"
>
> Regards
>
> On Sat, Sep 05, 2015 at 04:59:54PM -0400, Evan Cooch wrote:
> > Suppose I had the following string, which has length of integer multiple
> of
> > some value n. So, say n=2, and the example string has a length of  (2x4)
> = 8
> > characters.
> >
> > str <- "ABCDEFGH"
> >
> > What I'm trying to figure out is a simple, base-R coded way (which I
> > heuristically call StrSubset in the following) to extract every nth
> > character from the string, to generate a new string.
> >
> > So
> >
> > str <- "ABCDEFGH"
> >
> > new_str <- StrSubset(str);
> >
> > print(new_str)
> >
> > which would yield
> >
> > "ACEG"
> >
> >
> > Best I could come up with is something like the following, where I
> extract
> > every odd character from the string:
> >
> > StrSubset <- function(string)
> >       {
> > paste(unlist(strsplit(string,""))[seq(1,nchar(string),2)],collapse="") }
> >
> >
> > Anything more elegant come to mind? Trying to avoid regex if possible
> > (harder to explain to end-users), but if that meets the 'more elegant'
> sniff
> > test, happy to consider...
> >
> > Thanks in advance...
> >
> > ______________________________________________
> > R-help at 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 at 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.
>

	[[alternative HTML version deleted]]



More information about the R-help mailing list