在我的Shiny应用程序中,我试图打印一个实际上是一笔钱的价值。
目前的代码如下:
text <- reactive({format(data()), big.mark= ",", trim =
"TRUE")})
output$profit <- renderText({
paste("The total profit is \u00a3",text(),".")
但是,从text()
返回的值之前和之后仍有空格。我如何摆脱它们?
答案 0 :(得分:0)
使用粘贴功能稍微尝试一下,并记下文档中的sep
参数:
paste("The total profit is \u00a3","5,000",".")
[1] "The total profit is £ 5,000 ."
这表明问题与text()
的问题无关。代替:
paste("The total profit is \u00a3","5,000",".",sep = "")
[1] "The total profit is £5,000."
您可能还会对 lucr 这个套餐感兴趣,这样可以方便您设置货币样式。
答案 1 :(得分:0)
您可以使用paste0
来删除字符串之间的空格。
或者@joran说,在sep=""
中添加paste
选项。
答案 2 :(得分:0)
此外,我们可以使用glue::glue
glue("The total profit is \u00a3{text()}")
-fullcode
library(shiny)
library(glue)
options(scipen = 999)
df1 <- data.frame(amount = c(5000, 10000, 200000))
ui <- fluidPage(
selectInput("amt", "amount", choices = df1$amount),
verbatimTextOutput(outputId = "profit")
)
server <- function(input, output) {
data <- reactive(as.numeric(input$amt))
text <- reactive({
format(data(), big.mark= ",", trim = TRUE)})
output$profit <- renderText({
glue("The total profit is \u00a3{text()}")
})
}
shinyApp(ui = ui, server = server)
-output