Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

How do I save the results of a for-loop as a character string?

I’ve managed to automate some tedious code-writing with something like the following:

codes<-c("code1", "code2","code3")
for(i in codes){print(paste0("repetitivetext",i))}

yielding something like the following output:

"repetitivetextcode1"
"repetitivetextcode2"
"repetitivetextcode3"

Now I want to add the beginning and end of the code. I write:

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

paste0("beginning",for(i in codes){print(paste0("repetitivetext",i))},"end")¨

Hoping to get something like:

beginningrepetitivetextcode1repetitivetextcode2repetitivetextcode3end

Instead I get:

"repetitivetextcode1"
"repetitivetextcode2"
"repetitivetextcode3"
"beginningend"

How do I get my desired output? Is there for instance a way of collapsing the output of the for loop into a single character string (I already tried the collapse-option in paste0)?

This code segment will then have to be pasted together with other similarly created segments, so the lines must be saved in the correct order and they need to be saved as a single character string.

>Solution :

First, define an empty vector output to hold the result of the for loop (iff you want to use one, as there are more economical solutions readily available as noted by others):

output <- c()
for(i in codes){
  output[i] <- paste0("repetitivetext",i)
  }

Then simply paste0 the text elements around output:

paste0("beginning", output, ,"end")
[1] "beginningrepetitivetextcode1end" "beginningrepetitivetextcode2end" "beginningrepetitivetextcode3end"

If you want to have it all in one chunk, add the collapse argument:

paste0("beginning",output,"end", collapse = "")
[1] "beginningrepetitivetextcode1endbeginningrepetitivetextcode2endbeginningrepetitivetextcode3end"

Data:

codes<-c("code1", "code2","code3")
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading