我正在尝试打印时换行。
这是我的代码:
temp <- LETTERS[1:11]
print(sprintf("Rank %s = %s \n", 1:11, temp))
输出:
[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"
我天真地认为\n
进行了换行。我想要的输出是:
"Rank 1 = A"
"Rank 2 = B"
"Rank 3 = C"
"Rank 4 = D"
... etc.
编辑:
Pascal的评论告诉我,它适用于cat
cat(sprintf("Rank %s = %s \n", 1:11, temp))
我在renderText
内部使用此代码。 print
会返回文字,但我无法让cat
返回文字。
在这种情况下,是否有任何地方可以生成所需的换行符,而不使用cat
?
答案 0 :(得分:0)
您可以使用writeLines
引入换行符,如下所示:
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
您也可以将print
与writeLines
一起使用,但最后会为您提供NULL。
答案 1 :(得分:0)
您可以在cat
语句中使用renderPrint
,用verbatimTextOutput
在UI中进行渲染。
另一种选择是将HTML与一些<br/>
一起使用来打破界限:
renderUI({
HTML(paste0(sprintf("Rank %s = %s", 1:11, temp), collapse = "<br/>"))
})
使用uiOutput
在用户界面中呈现。
答案 2 :(得分:-2)
您可以按照here所述,将renderText
更改为renderUI
并使用htmlOutput
。脚本可能类似于
library(shiny)
runApp(
list(
ui = fluidPage(
htmlOutput("text1")
),
server = function(input, output){
output$text1 <- renderUI({
temp <- LETTERS[1:11]
HTML(
paste0(sprintf("Rank %s = %s", 1:11, temp), collapse = "<br>")
)
})
}))
结果是