我是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”应该作为输出返回什么?
希望我的问题足够明确。如果我应该在问题描述中添加任何内容,请告诉我。
任何帮助将不胜感激。感谢
答案 0 :(得分:1)
假设您真正需要的是method
参数,这并不难。
1)在radioButtons()
中设置一个ui
输入,让用户选择一种方法,然后给它inputId="MethodChoice"
。
2)在choice
的{{1}}参数中,您应该使用selectInput
然后choice=c(feature_creator(input$MethodChoice))
将根据用户选择的方法获得文本值。
为了在feature_creator
中工作,choice
应该返回一个命名列表,格式与您硬编码的格式类似。