Skip to content

String manipulation, insert delim

4 messages · Christopher Marcum, Gabor Grothendieck, jim holtman +1 more

#
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
#
Try this:
[1] "have,a,nice,day"
On 6/18/07, Christopher Marcum <cmarcum at uci.edu> wrote:
#
On Mon, 2007-06-18 at 16:54 -0700, Christopher Marcum wrote:
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 = "")
}
[1] "have,a,nice,day"

See ?append

HTH,

Marc Schwartz