【问题标题】:Input in two words in Shiny在 Shiny 中输入两个单词
【发布时间】:2020-02-14 06:31:46
【问题描述】:

我正在尝试创建一个闪亮的应用程序,其中一些输入来自两个单词。我在下面发布了一个最小的工作示例。当我尝试选择名为“Word”的第一列时,一切都很好。但是,当我尝试在名为“Word word”的数据框中选择第二列时,出现以下错误“:1:6:意外符号1:Word word”。

因此,我的问题是,当输入是两个单词时,我该如何编写 input$y 语句?

我曾尝试使用粘贴功能,但这似乎不起作用。

library(shiny)

library(ggplot2)


data<-data.frame(rnorm(100),rnorm(100))

names(data)<-c("Word","Word word")

ui <- fluidPage(
  selectInput( inputId="y",label="Dimension",choices=c("Word","Word word")),
                                        plotOutput("plot"))



server<-function(session,input,output){

  output$plot<-renderPlot({
    ggplot(data=data, aes_string(y=input$y,x="Word"))+geom_line()
  })



}

shinyApp(ui=ui,server=server)

【问题讨论】:

    标签: r ggplot2 shiny


    【解决方案1】:

    我相信您收到的错误是由于在使用 aes_string 时变量名中有空格。不鼓励在变量名中使用空格。

    要获得Word word 的图,您需要执行以下操作:

    ggplot(data = data, aes_string(y = "`Word word`", x = "Word")) + geom_line()
    

    并将Word word 放在刻度线中。但这与您的输入字符串不匹配。

    对于一个选项,如果您确保变量在单词之间使用下划线,您可以执行以下操作:

    names(data)<-c("Word", "Word_word")
    ui <- fluidPage(
      selectInput( inputId="y",label="Dimension",choices=c("Word" = "Word", "Word word" = "Word_word")),
      plotOutput("plot"))
    

    我猜这会按预期工作。如果我遗漏了什么,或者这是您的想法,请告诉我。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-28
      • 2016-05-23
      • 1970-01-01
      • 2021-09-13
      相关资源
      最近更新 更多