I'm trying to make line breaks when printing.
here is my code:
temp <- LETTERS[1:11]
print(sprintf("Rank %s = %s \n", 1:11, temp))
output:
[1] "Rank 1 = A \n" "Rank 2 = B \n" "Rank 3 = C \n" "Rank 4 = D \n" "Rank 5 = E \n" "Rank 6 = F \n" "Rank 7 = G \n" "Rank 8 = H \n" "Rank 9 = I \n"
[10] "Rank 10 = J \n" "Rank 11 = K \n"
I naively thought that \n
made a line break. My desired output would be:
"Rank 1 = A"
"Rank 2 = B"
"Rank 3 = C"
"Rank 4 = D"
... etc.
EDIT:
Pascal's comment tells me that it works with cat
cat(sprintf("Rank %s = %s \n", 1:11, temp))
I'm using this code inside of renderText
inside shiny. print
will return text, but I cannot get cat
to return text.
In this case, is there anywhere to generate the required line breaks, without using cat
?
You can use writeLines
to introduce line breaks as given below:
temp <- LETTERS[1:11]
writeLines(sprintf("Rank %s = %s", 1:11, temp))
Rank 1 = A
Rank 2 = B
Rank 3 = C
Rank 4 = D
Rank 5 = E
Rank 6 = F
Rank 7 = G
Rank 8 = H
Rank 9 = I
Rank 10 = J
Rank 11 = K
You can also use print
with writeLines
but it will give you a NULL at the end.
You can use cat
in a renderPrint
statement, to render in the UI with verbatimTextOutput
.
Another option is to use HTML with some <br/>
to break the lines:
renderUI({
HTML(paste0(sprintf("Rank %s = %s", 1:11, temp), collapse = "<br/>"))
})
to render in the UI with uiOutput
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With