【问题标题】:checkGroupInput return name of input choice (use named list in plot)checkGroupInput 返回输入选择的名称(在图中使用命名列表)
【发布时间】:2015-12-24 04:46:42
【问题描述】:

我正在使用 Shiny/ShinyDashboard-package 中的 checkboxGroupInput() 让用户(取消)选择绘图元素 (MorrisJS)。选择从命名列表作为 choices-Argument 传递到更新 data.frame 的函数(添加和删除元素)。

但是,input$NameOfTheCheckboxGroup 只返回一个带有所选选项的向量,而不是它作为输入的列表中成员的标签/名称。这意味着我只能使用分配给选项的值来命名元素。

有什么办法可以改善这一点,所以input$NameOfTheCheckboxGroup 也会返回标签/名称?到目前为止,我已经尝试替换图中的“y”-Argument 以返回列表成员的标签,但这不起作用,因为该图找不到数据列。

替换为:

y = colnames(de_solar)[2:NCOL(de_solar)]

与:

y = names(list1[match(colnames(df)[2:NCOL(df)],list1)])

不幸的是,重命名列表成员不是一种选择。

[用户界面]

checkboxGroupInput("check_de_solar", label = h3("Label"), 
                                   choices = list("Option1" = 2097,
                                                  "Option2" = 409,
                                                  "Option3" = 410,
                                                  "Option4" = 411,
                                                  "Option5" = 412,
                                                  "Option6" = 2106,
                                                  "Option7" = 2107,
                                                  "Option8" = 2108,
                                                  "Option9" = 2109, 
                                                  "Option10" = 731),
                                                  selected = 2097)

[服务器]

  output$de_solar <- renderChart2({

    de_solar <<- checkbox_call(df_data,"de_solar",input$check_de_solar)
    grph2 <- mPlot(x = "Date", y = colnames(de_solar)[2:NCOL(de_solar)], data = de_solar, type = "Line")

  })

为了进一步说明,当前的 data.frame de_solar 和列表 choices 如下所示:

 de_solar = data.frame(replicate(10,sample(0:50,10,rep=TRUE)))
choices = list("Option1" = 2097,
             "Option2" = 409,
             "Option3" = 410,
             "Option4" = 411,
             "Option5" = 412,
             "Option6" = 2106,
             "Option7" = 2107,
             "Option8" = 2108,
             "Option9" = 2109, 
             "Option10" = 731)
 names(de_solar) <- choices

这给了我这个输出:

但我希望相同的输入是:

感谢您的帮助。

【问题讨论】:

  • 我很抱歉之前没有选择您的答案。您的解决方案解决了问题。

标签: r shiny rcharts morris.js


【解决方案1】:

有什么办法可以改进,所以input$NameOfTheCheckboxGroup 也会返回标签/名称?

不是真的。标签信息不是生成请求的一部分,因此除非您想实现自定义客户端逻辑,否则它不是一个选项。只要值是唯一的,它不应该是一个问题。您可以简单地匹配值并提取名称,例如:

names(choices[choices %in% input$check_de_solar])

其中选择是字符值的列表:

list("Option1" = "2097", "Option2" = "409", ..., "Option10" = "731")

【讨论】:

    猜你喜欢
    • 2015-08-15
    • 2013-11-29
    • 2012-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-18
    相关资源
    最近更新 更多