闪亮:将带有空格的文本传递给图表不起作用,但它没有空间

时间:2015-07-07 12:29:56

标签: r string shiny spaces

我的Shiny脚本从下拉列表中获取输入。基于此,我设置(在服务器端)一个应该在图表中显示的特定字符串(在被动反应中)(例如作为x轴标题)。仅当字符串不包含空格时才有效,但如果包含空格,则图表中不显示任何字符串。

如何让它接受任何字符串?

这是我的代码(我修改了Shiny教程中的一个示例,以尽可能简化它):

# server.r
# Here the string is set depending on what was chosen by the user
shinyServer(function(input, output, session) {
label1_new <- reactive({
if (input$variable1=="pp_pmw") {label1_new <- "PP pmw"}
if (input$variable1=="perc_pp*100") {label1_new <- "PP percent"}
if (input$variable1=="formality") {label1_new <- "Formality"}
})

label1_new2 <- renderText({label1_new()})

output$distPlot <- renderPlot({
x    <- faithful[, 2]  # Old Faithful Geyser data
bins <- seq(min(x), max(x), length.out = input$bins + 1)

# draw the histogram with the specified number of bins
# xlabel1_new2() contains the string from above
hist(x, breaks = bins, col = 'darkgray', border = 'white', xlab=label1_new2())
})

})


# ui.r
library(shiny)


shinyUI(fluidPage(

# Application title
titlePanel("Hello Shiny!"),

# Sidebar with a slider input for the number of bins
sidebarLayout(
sidebarPanel(
  selectInput("variable1", "Circle size:",
            list("PP pmw" = "pp_pmw", 
                 "PP percent" = "perc_pp*100", 
                 "Formality" = "formality")),

  sliderInput("bins",
              "Number of bins:",
              min = 1,
              max = 50,
              value = 30)
),

# Show a plot of the generated distribution
mainPanel(
  plotOutput("distPlot")
)
)
))

1 个答案:

答案 0 :(得分:1)

renderText用于ui.r,不用于创建要在server.r中使用的字符串。

# server.r
# Here the string is set depending on what was chosen by the user
shinyServer(function(input, output, session) {
label1_new <- reactive({
  if (input$variable1=="pp_pmw") return("PP pmw")
  if (input$variable1=="perc_pp*100") return("PP percent")
  if (input$variable1=="formality") return("Formality")
})


output$distPlot <- renderPlot({
  x    <- as.numeric(unlist(faithful[, 2]))  # Old Faithful Geyser data
  bins <- seq(min(x), max(x), length.out = input$bins + 1)

  # draw the histogram with the specified number of bins
  hist(x, breaks = bins, col = 'darkgray', border = 'white', xlab=label1_new())
})

})

(同样的ui.r)