[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