Thank you both! I was working along the lines of Jorge's method, but was taking 
longer than it should. Sarah's is actually a lot faster.

Thanks again,
Joy

________________________________________
From: Sarah Goslee [sarah.gos...@gmail.com]
Sent: Wednesday, February 08, 2012 1:30 PM
To: Yang, Joy (NIH/NHGRI) [F]
Cc: r-help@R-project.org
Subject: Re: [R] String position character replacement

And here's an alternative solution:

subchar <- function(string, pos, char="-") {
        for(i in pos) {
        string <- gsub(paste("^(.{", i-1, "}).", sep=""), "\\1-", string)
        }
        string
}


> subchar("hellohowareyoudoing", 3)
[1] "he-lohowareyoudoing"

> subchar("hellohowareyoudoing", c(3, 9))
[1] "he-lohow-reyoudoing"

> avec <- c("hellohowareyoudoing", "imgoodhowareyou", "goodandyou", 
> "yesimgoodijusttoldyou", "ohyesthatsright")
> alist <- list(c(3, 9), c(3, 4), c(4, 7), c(5,6,7,8,9), c(2,5,7,12))

> sapply(1:length(avec), function(x)subchar(avec[x], alist[[x]]))
[1] "he-lohow-reyoudoing"   "im--odhowareyou"       "goo-an-you"
[4] "yesi-----ijusttoldyou" "o-ye-t-atsr-ght"
>

Sarah


On Wed, Feb 8, 2012 at 12:33 PM, Yang, Joy (NIH/NHGRI) [F]
<joy.y...@nih.gov> wrote:
> Hi,
>
> Is there a way to efficiently replace specified indices in a string with 
> another character? For example, if I had a vector of strings such as
>
> [1] "hellohowareyoudoing"
> [2] "imgoodhowareyou"
> [3] "goodandyou"
> [4] "yesimgoodijusttoldyou"
> [5] "ohyesthatsright"
>
> and had a list of positions that I want to replace with the character "-"
>
> [[1]]
> [1]  3  9
>
> [[2]]
> [1]  3  4
>
> [[3]]
> [1]  4  7
>
> [[4]]
> [1] 5 6 7 8 9
>
> [[5]]
> [1]  2  5  7 12
>
> I would like to get
>
> [1] "he-lohow-reyoudoing"
> [2] "im--odhowareyou"
> [3] "goo-an-you"
> [4] "yesi-----ijusttoldyou"
> [5] "o-ye-t-atsr-ght"
>
> Is there an easy way to do this? Or would the easiest way be writing a 
> function to take substrings of the original vector and pasting in the 
> replacement character?
>
> Thanks in advance!
> Joy


--
Sarah Goslee
http://www.functionaldiversity.org

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to