我使用Shiny/ShinyDashboard-package中的checkboxGroupInput()
來讓用戶(de-)選擇一個圖的元素(MorrisJS
)。選擇作爲選項從命名列表中傳遞 - 參數爲更新data.frame(添加和刪除元素)的函數。checkGroupInput輸入選項的返回名稱(在plot中使用命名列表)
但是,input$NameOfTheCheckboxGroup
只返回一個具有選定選項的向量,但不返回列表中成員的標籤/名稱作爲輸入。這意味着我只能用賦給選擇值的元素命名元素。
有沒有什麼辦法可以改善呢,所以input$NameOfTheCheckboxGroup
也會返回標籤/名稱?到目前爲止,我已經試圖替換圖中的「y」參數來返回列表成員的標籤,但這不能工作,因爲圖無法找到數據列。
替換這樣的:
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)
[SERVER]
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和列表選擇這個樣子:
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
謝謝您的幫助。
我不面前選擇你的答案道歉。您的解決方案解決了問題。 – lammy
謝謝@lammy :) – zero323