[R] paste adjacent elements matching string

David Winsemius dwinsemius at comcast.net
Sat Dec 5 03:50:06 CET 2009


On Dec 4, 2009, at 8:42 PM, Jill Hollenbach wrote:

> Hi all,
> I would like to combine elements of a vector:
>
> vec <- c("astring",  "b", "cstring",  "d", "e")
>> vec
> [1] "astring" "b"       "cstring" "d"       "e"
>
> such that for every element that contains  "string" at the end, it is
> combined with the next element, so that I get this:
>
>> res
> [1] "astringb" "cstringd" "e"
>

It will be problematic if there are two "string" elements in a row,  
but if you can assure me that is not so, then this may suffice:

 > res <- vec
# First do the pasting
 > res[grep("string", vec)] <- paste(vec[grep("string",  
vec)],vec[grep("string", vec)+1],sep="")
# Now need to remove the strings which were concatenated to the prior  
ones
 > res <- res[-(grep('string', res)+1)]
 > res
[1] "astringb" "cstringd" "e"

> Any help is much appreciated, still learning.
>

As are we all. Why do you think we do this?

> Many thanks,
> Jill


David Winsemius, MD
Heritage Laboratories
West Hartford, CT




More information about the R-help mailing list