2015-10-05 20 views
0

我試圖使用renderUI函數動態地在Shiny接口中生成checkboxGroupInput接口。將數據幀列轉換爲Shiny中的動態UI生成列表

checkboxGroupInput需要list作爲選擇。我已經提取從數據幀的列,我想呈現爲框選擇,列樣子(轉換與as.list()列出)​​

str(A) 
List of 1 
$ B: num [1:4] 0 5 1 10 

,我想A轉換爲類似

A <- list("0" = 0, "1" = 1, "5" = 5, "10" = 10) 

即命名列表按升序排列,這樣我就可以在checkboxGroupInput將其送到choices = A

我不知道如何處理這一切,任何幫助將不勝感激!

謝謝!

回答

2

(我也想知道,你的意思是用[["B"]]而非[1]["B"]提取,因爲你有一個列表,而不是一個向量)。有了這個結果,你首先需要unlist,因爲它當時是一個元素列表>然後使用as.list和setNames該結果:

A <- list(B=c(0, 5, 1, 10)) 
setNames(as.list(sort(unlist(A))), sort(A$B)) 
#----output---- 
$`0` 
[1] 0 

$`1` 
[1] 1 

$`5` 
[1] 5 

$`10` 
[1] 10 
+0

由於@BondedDust,我轉換爲'list'因爲'options'需要'checkboxGroupInput'一個'list'。如果'A'是'vector'還是'dataframe'的一列(仍然是'dataframe'),會更容易嗎? – SN248

+0

我只是想知道,並不是說你犯了一個錯誤。我現在看到你想要排序的元素。添加了代碼來做到這一點。 –

相關問題