Hello R users, I have a little problem with a for loop. Below there is an simple example of my problem. I want to delet the commas in the character string. Fore this reason I create a for loop to unpick the string and rebuild him without the commas. The problem is, that "paste" does not work in the loop as I expected. text <- "aaa,bbb,ccc,ddd" characterseq <- seq(1,15,4) for (i in characterseq ){ m <- paste(substring(text,i,i+2),sep = "") }> m[1] "ddd" m should be "aaabbbcccddd" and not just "ddd" with best regards Chris -- View this message in context: http://r.789695.n4.nabble.com/substring-and-paste-character-with-a-for-loop-tp3258449p3258449.html Sent from the R help mailing list archive at Nabble.com.
Chris82 <rubenbauar <at> gmx.de> writes:> > > Hello R users, > > I have a little problem with a for loop. > Below there is an simple example of my problem. > > I want to delet the commas in the character string. Fore this reason I > create a for loop to unpick the string and rebuild him without the commas. > The problem is, that "paste" does not work in the loop as I expected. > > text <- "aaa,bbb,ccc,ddd" > > characterseq <- seq(1,15,4) > > for (i in characterseq ){ > m <- paste(substring(text,i,i+2),sep = "") > } > > > m > [1] "ddd" > > m should be "aaabbbcccddd" and not just "ddd" >If you want to delete commas, what about gsub(",","",c("aaa,bbb,ccc,ddd")) [1] "aaabbbcccddd" ? The problem with your loop is that you are not building m; you would need paste(m,substring(text,i,i+2),sep="")
Hi Chris, 'gsub' does exactly what you want: gsub(",","",text) so there is no need for a loop. Btw. your loop assigns a new value to m in each step and you see only the last assignment. you could do something like m <- paste(m,substring(text,i,i+2),sep = "") hth Am 03.02.2011 17:35, schrieb Chris82:> > Hello R users, > > I have a little problem with a for loop. > Below there is an simple example of my problem. > > I want to delet the commas in the character string. Fore this reason I > create a for loop to unpick the string and rebuild him without the commas. > The problem is, that "paste" does not work in the loop as I expected. > > text <- "aaa,bbb,ccc,ddd" > > characterseq <- seq(1,15,4) > > for (i in characterseq ){ > m <- paste(substring(text,i,i+2),sep = "") > } > >> m > [1] "ddd" > > > m should be "aaabbbcccddd" and not just "ddd" > > > > with best regards > > Chris-- Eik Vettorazzi Institut f?r Medizinische Biometrie und Epidemiologie Universit?tsklinikum Hamburg-Eppendorf Martinistr. 52 20246 Hamburg T ++49/40/7410-58243 F ++49/40/7410-57790