[R] String manipulation, insert delim

Marc Schwartz marc_schwartz at comcast.net
Tue Jun 19 02:56:57 CEST 2007


On Mon, 2007-06-18 at 16:54 -0700, Christopher Marcum wrote:
> Hello All,
> 
> I've been using R for two years now and I am happy to say this is the
> first time I could not find the answer to my problem in the R-help
> archives. Here is the pending problem:
> 
> I want to be able to insert delimiters, say commas, into a string of
> characters at uneven intervals such that:
> 
> foo<-c("haveaniceday")#my string of character
> bar<-c(4,1,4,3) # my vector of uneven intervals
> 
> my.fun(foo,bar) # some function that places delimiters appropriately
> 
> have,a,nice,day # what the function would ideally return
> 
> I've tried multiple for-loops using cut and paste but have not had success.
> 
> Thanks!
> Chris Marcum
> UCI Sociology

One more variation on the replies already provided:

foo <- c("haveaniceday")
bar <- c(4, 1, 4, 3)

insert.char <- function(x, at, char = ",")
{
   cs.at <- cumsum(at)
   vec <- unlist(strsplit(x, ""))
   for (i in seq(length(cs.at) - 1))
     vec <- append(vec, char, cs.at[i] + i - 1)
   paste(vec, collapse = "")
}


> insert.char(foo, bar)
[1] "have,a,nice,day"

See ?append

HTH,

Marc Schwartz



More information about the R-help mailing list