如何在selectInput中更改选择的名称,以避免使用URL作为选择?

时间:2019-04-24 20:09:38

标签: r shiny flexdashboard

我正在尝试为我正在处理的项目创建仪表板。在这个项目中,我尝试使用renderUI整合来自tableau.public.com的一些地块。我希望仪表板使用selectInput选择要显示的表格。我已经更改了以下网址,因此如果被搜索,它们将无法工作。

我当前的代码是:

plot1<-"https://public.tableau.com/views/Sheet2?:showVizHome=no&:embed=true"
plot2<-"https://public.tableau.com/views/Sheet3?:showVizHome=no&:embed=true"

fluidPage(
  ##### Give a Title #####
  titlePanel("Tableau Visualizations"),

  ## Month Dropdown ##
  selectInput("URL", label = "Visualization:", 
              choices = c(plot1,plot2), selected = plot1))

以及用于显示Tableau页面的代码:

renderUI({
tags$iframe(style="height:600px; width:100%; scorlling=yes", src=input$URL)
})

除了selectInput选项之外,代码可以执行我想要的操作。我希望下拉菜单中的选项引用实际的地块名称(plot1plot2)。但是,由于它们是变量名,因此实际的下拉菜单列出了URL。我不能使用以下内容,因为那样便无法再将选择识别为变量:

  ## Month Dropdown ##
  selectInput("URL", label = "Visualization:", 
              choices = c("plot1,"plot2"), selected = plot1))

无论如何,我是否可以显示变量的名称,但不能显示它们代表的网址?

谢谢

1 个答案:

答案 0 :(得分:1)

您可以定义一个包含绘图名称的向量和一个包含如下所示网址的命名向量:

plot_names <- c("Plot1", "Plot2")
## Month Dropdown ##  
# Use the plot names here
selectInput("plot_name", label = "Visualization:", 
            choices = plot_names, selected = plot_names[1]))

然后显示网址:

urls <- c(Plot1 = "url1", Plot2 = "url2") # vector to get the urls from the names
renderUI({
tags$iframe(style="height:600px; width:100%; scorlling=yes", src=urls[input$plot_name])
})

希望这会有所帮助。