多个conditionalPanel。如何将它们变为1变量?

时间:2016-08-11 11:33:11

标签: r shiny

我想制作多个学生成绩的情节,但每个学生都有不同的课程。为了确保显示不同的课程列表,我使用了conditionalPanel,如下所示。

selectInput("name", label = h3("Choose a name"),
  choices = list("Claire" = "Claire", "Thomas" = "Thomas", "Alex" = "Alex"),
  selected = "Claire"),
conditionalPanel(
  condition = "input.name == 'Claire'",
  checkboxGroupInput("cour1", "Courses",
    list("Biology", "Mathematics", "Chemistry", "English", "French"),
    selected = "Biology")
  ),
conditionalPanel(
  condition = "input.bedr == 'Thomas'",
  checkboxGroupInput("cour2", "Courses",
    list("Economics", "History", "English", "Spanish", "Geography "),
    selected = "Economics")

问题是每个学生现在都有他/她自己的课程变量(cour1cour2),但我不想制作20个左右的不同代码(对于每个学生)制作图表。

我尝试制作一个这样的变量:

if (input$name == "Clair"){
    input$cour <- input$cour1
}

这给出了错误:

  

尝试将值赋给只读反应值对象

1 个答案:

答案 0 :(得分:0)

正如@ zx8754指出的那样,可以使用renderUI()来完成。

有关render UI()的简短说明,请参阅http://shiny.rstudio.com/articles/dynamic-ui.html

但真正帮助我的是这个Youtube视频: https://www.youtube.com/watch?v=JUop-YfRAuw