R Shiny - 将数据传递到下拉输入选择器

时间:2016-01-28 18:38:38

标签: r shiny

我试图在Shiny中创建一个下拉选择器。 Shiny教程在ui.r中有这段代码:

selectInput("var", 
    label = "Choose a variable to display",
    choices = c("Percent White", "Percent Black",
      "Percent Hispanic", "Percent Asian"),
    selected = "Percent White"),

如果我进入RStudio并写道:

myVar = c("Percent White", "Percent Black",
          "Percent Hispanic", "Percent Asian") 

myVar的类型为chr。

在我的项目中,我想在server.r中加载.RData对象。我跑的时候:

mydata = load("myDataFile.RData")

mydata的类型为chr,包含.RData文件中所有对象的名称。

我想从mydata中的所有内容(我的.RData文件中的对象名称)中选择一个下拉列表。我将此mydata列表从server.r传递给ui.r时遇到问题。

如果我在server.r中做任何事情,比如

output$myChoices = c(mydata)
output$mydat = mydata 

和ui.r一样

choices = mydata,
choices = output$mydata,
or choices = "mydata",

我要么认为它不能识别mydata,要么下拉列表中唯一可用的选择就是" mydata。"

此外,以下内容成功打印出mydata中的所有对象:

#server.r:
output$text4 <- renderText({ 
      paste(mydata)
    })

#ui.r:
textOutput("text4"),

如何&#34; mydata&#34;将字面打印&#34; mydata,&#34;但这是打印文本的语法。

同样,我想要下拉选择mydata中的所有内容。

非常感谢你的帮助!

1 个答案:

答案 0 :(得分:0)

创建selectInput所需的所有信息都在server.R部分,因此您可以使用uiOutput / renderUi在那里创建。

您可以在uiOutput("select_data")ui.R中添加server.R

output$select_data <- renderUi({
selectInput("choose_data", 
    label = "Choose data",
    choices = mydata
})

然后,您可以使用server.R

访问用户在input$select_data中选择的内容