[R] find and replace string

jim holtman jholtman at gmail.com
Fri Dec 2 13:51:13 CET 2011


try this:

> x <- c('sta_+1+0_field2ndtry_0000$01.cfg'
+      , 'sta_+1+0_field2ndtry_0000$01.cfg'
+      , 'sta_+1-0_field2ndtry_0000$01.cfg'
+      , 'sta_+1+0_field2ndtry_0000$01.cfg'
+      )
> # find matching fields
> values <- grep("[^+]*\\+[^+]*\\+0", x, value = TRUE)
> # split into two pieces
> splitValues <- sub("([^+]*\\+[^+]*\\+)0(.*)", "\\1^\\2", values)
> for (i in splitValues){
+     for (j in 0:3){
+         print(sub("\\^", j, i))
+     }
+ }
[1] "sta_+1+0_field2ndtry_0000$01.cfg"
[1] "sta_+1+1_field2ndtry_0000$01.cfg"
[1] "sta_+1+2_field2ndtry_0000$01.cfg"
[1] "sta_+1+3_field2ndtry_0000$01.cfg"
[1] "sta_+1+0_field2ndtry_0000$01.cfg"
[1] "sta_+1+1_field2ndtry_0000$01.cfg"
[1] "sta_+1+2_field2ndtry_0000$01.cfg"
[1] "sta_+1+3_field2ndtry_0000$01.cfg"
[1] "sta_+1+0_field2ndtry_0000$01.cfg"
[1] "sta_+1+1_field2ndtry_0000$01.cfg"
[1] "sta_+1+2_field2ndtry_0000$01.cfg"
[1] "sta_+1+3_field2ndtry_0000$01.cfg"

On Fri, Dec 2, 2011 at 6:30 AM, Alaios <alaios at yahoo.com> wrote:
> Dear all,
> I would like to search in a string for the second occurrence of a symbol and replace the symbol after it
>
> For example my strings look like
>
> sta_+1+0_field2ndtry_0000$01.cfg
>
> I want to find the digit that comes after the second +, in that case is zero
> and then over a loop create the strings below
>
> sta_+1+0_field2ndtry_0000$01.cfg
>
> sta_+1+1_field2ndtry_0000$01.cfg
>
> sta_+1+2_field2ndtry_0000$01.cfg
>
> sta_+1+3_field2ndtry_0000$01.cfg
>
> and so on..
> I have already tried strsplit but this will make things more complex...
>
> Could you please help me with that?
>
> B.R
> Alex
>
>        [[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at 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.



-- 
Jim Holtman
Data Munger Guru

What is the problem that you are trying to solve?
Tell me what you want to do, not how you want to do it.



More information about the R-help mailing list