checkGroupInput return 输入选择的名称(在绘图中使用命名列表)
checkGroupInput return name of input choice (use named list in plot)
我正在使用 Shiny/ShinyDashboard-package 中的 checkboxGroupInput()
让用户 (de-)select 情节元素 (MorrisJS
)。 selection 作为 choices 参数从命名列表传递给函数更新 data.frame(添加和删除元素)。
但是,input$NameOfTheCheckboxGroup
return 只是一个具有 selected 选择的向量,而不是它作为输入的列表中成员的 label/name。这意味着我只能使用我分配给选择的值来命名元素。
有什么方法可以改进吗,所以 input$NameOfTheCheckboxGroup
也 return 是 label/name?到目前为止,我已经尝试将图中的 "y"-Argument 替换为 return 列表成员的标签,但这行不通,因为该图找不到数据列。
替换为:
y = colnames(de_solar)[2:NCOL(de_solar)]
有:
y = names(list1[match(colnames(df)[2:NCOL(df)],list1)])
不幸的是,重命名列表成员不是一个选项。
[UI]
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
这给了我这个输出:
但我希望相同的输入是:
感谢您的帮助。
Is there any way to improve that, so input$NameOfTheCheckboxGroup
also returns the label/name?
不是真的。标签信息不是生成请求的一部分,因此除非您想实现自定义客户端逻辑,否则它不是一个选项。只要值是唯一的,它就应该不是问题。您可以简单地匹配值并提取名称,例如:
names(choices[choices %in% input$check_de_solar])
其中 choices 是 字符 值的列表:
list("Option1" = "2097", "Option2" = "409", ..., "Option10" = "731")
我正在使用 Shiny/ShinyDashboard-package 中的 checkboxGroupInput()
让用户 (de-)select 情节元素 (MorrisJS
)。 selection 作为 choices 参数从命名列表传递给函数更新 data.frame(添加和删除元素)。
但是,input$NameOfTheCheckboxGroup
return 只是一个具有 selected 选择的向量,而不是它作为输入的列表中成员的 label/name。这意味着我只能使用我分配给选择的值来命名元素。
有什么方法可以改进吗,所以 input$NameOfTheCheckboxGroup
也 return 是 label/name?到目前为止,我已经尝试将图中的 "y"-Argument 替换为 return 列表成员的标签,但这行不通,因为该图找不到数据列。
替换为:
y = colnames(de_solar)[2:NCOL(de_solar)]
有:
y = names(list1[match(colnames(df)[2:NCOL(df)],list1)])
不幸的是,重命名列表成员不是一个选项。
[UI]
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
这给了我这个输出:
但我希望相同的输入是:
感谢您的帮助。
Is there any way to improve that, so
input$NameOfTheCheckboxGroup
also returns the label/name?
不是真的。标签信息不是生成请求的一部分,因此除非您想实现自定义客户端逻辑,否则它不是一个选项。只要值是唯一的,它就应该不是问题。您可以简单地匹配值并提取名称,例如:
names(choices[choices %in% input$check_de_solar])
其中 choices 是 字符 值的列表:
list("Option1" = "2097", "Option2" = "409", ..., "Option10" = "731")