R Shiny使用renderUI和函数结果创建输入

时间:2015-07-22 18:47:35

标签: r dynamic input shiny

我是R Shiny的新手,我正在尝试创建一个应用程序,我需要它尽可能地互动。我正在处理的一个问题是这个问题。在ui.R我有以下内容:

helpText("Select a feature"),
uiOutput("sliders")

在服务器上.R:

output$sliders <- renderUI({
    selectInput('feature_name', 
                'Feature name', #Description  
                choice = c("F1"='1', "F2"='2'))
  })

我的问题是,是否可以在renderUI中更改某些内容,以便静态地将函数的结果传递给它,而不是设置c(“F1”='1',“F2”='2'))因此它可以更加动态(一种基于用户所做的事情生成特征列表并将列表传递给renderUI以创建selectInput的函数)。如下所示:

output$sliders <- renderUI({
    selectInput('feature_name', 
                'Feature name', #Description  
                choice = c(feature_creator(method)))
  })

其中“feature_creator”是一个函数,它返回:“F1”=“1”,“F2”=“2”基于用户选择的方法(定义变量“method”,我有值)。我更具体的问题是“feature_creator”应该作为输出返回什么?

希望我的问题足够明确。如果我应该在问题描述中添加任何内容,请告诉我。

任何帮助将不胜感激。感谢

1 个答案:

答案 0 :(得分:1)

假设您真正需要的是method参数,这并不难。

1)在radioButtons()中设置一个ui输入,让用户选择一种方法,然后给它inputId="MethodChoice"

2)在choice的{​​{1}}参数中,您应该使用selectInput

然后choice=c(feature_creator(input$MethodChoice))将根据用户选择的方法获得文本值。

为了在feature_creator中工作,choice应该返回一个命名列表,格式与您硬编码的格式类似。