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

Evan Cooch evan.cooch at gmail.com
Sat Sep 5 22:59:54 CEST 2015


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...



More information about the R-help mailing list