2015-09-26 24 views
0

我使用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 

這給了我這樣的輸出: What I have

但我想相同的輸入是: enter image description here

謝謝您的幫助。

+0

我不面前選擇你的答案道歉。您的解決方案解決了問題。 – lammy

+0

謝謝@lammy :) – zero323

回答

1

有沒有什麼辦法可以改善呢,所以input$NameOfTheCheckboxGroup也會返回標籤/名字?

不是。標籤信息不是生成請求的一部分,因此除非您想實現自定義的客戶端邏輯,否則它不是一個選項。只要價值觀是獨一無二的,它應該不是問題。你可以簡單地匹配,例如值和提取的名字是這樣的:

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

其中選擇是性格值的列表:

list("Option1" = "2097", "Option2" = "409", ..., "Option10" = "731") 
相關問題