Reputation: 8343
Question
Within a code chunk in an R Markdown (.Rmd) document how do you parse a string containing new line characters \n
, to display the text on new lines?
Data and example
I would like to parse text <- "this is\nsome\ntext"
to be displayed as:
this is
some
text
Here is an example code chunk with a few attempts (that don't produce the desired output):
```{r, echo=FALSE, results='asis'}
text <- "this is\nsome\ntext" # This is the text I would like displayed
cat(text, sep="\n") # combines all to one line
print(text) # ignores everything after the first \n
text # same as print
```
Additional Information
The text will come from a user input on a shiny app.
e.g ui.R
tags$textarea(name="txt_comment") ## comment box for user input
I then have a download
button that uses a .Rmd
document to render the input:
```{r, echo=FALSE, results='asis'}
input$txt_comment
```
An example of this is here in the R Studio gallery
Upvotes: 24
Views: 27877
Reputation: 21507
The trick is to use two spaces before the "\n"
in a row:
So replace "\n"
by " \n"
Example:
```{r, results='asis'}
text <- "this is\nsome\ntext"
mycat <- function(text){
cat(gsub(pattern = "\n", replacement = " \n", x = text))
}
mycat(text)
```
Result:
P.S.: This is the same here on SO (normal markdown behaviour)
If you want just a linebreak use two spaces at the end of the line you want to break
Upvotes: 35