R Shiny で SelectInput 関数の動的入力を作成できるように、因子レベルの出力をリストに変換しようとしています。
基本的にCSVファイルをインポートし、CSVファイルの1列目の「カテゴリ」(レベル)を利用してSelectInputにドロップダウンリストを作成したいと考えています。
したがって、UI.RI には次のものがあります。
uiOutput("categoryPicker")
そしてserver.RIには次のものがあります:
datatwo <- read.csv(file="data2.csv",head=TRUE,sep=",")
次に、「shinyServer(function(input, output)」セクション (ちなみに、「category」は CSV ファイルのヘッダーです):
output$categoryPicker <- reactiveUI(function() {
categories <- levels(datatwo$category)
selectInput("category", "Category:", categories)
})
これは機能しません。次のエラーが表示されます。
選択肢[[choiceName]]のエラー:添え字が範囲外です
str(categories) の出力は次のとおりです。
chr [1:22] "" "Cat1" "Cat2" "Cat3" "Cat4" "Cat5" ...
「list(levels(datatwo$category)」を実行すると、str(categories) 出力全体であるドロップダウンが 1 つだけ表示されます。
1 $ のリスト : chr [1:22] "" "Cat1" "Cat2" "Cat3" ...
これを次の形式で取得しようとしています( str(x) が完了すると、出力は次のようになります):
Xのリスト
$ Cat1: chr "Cat1"
$ Cat2: chr "Cat2"
$ Cat3: chr "Cat3"
...
しかし、これを行う方法がわかりません。また、最初の項目が "" [空の文字列] である理由もわかりません。私はRとShinyにかなり慣れていないので、無知を許してください。しかし、どんな助けでも大歓迎です。
ところで、私はこのチュートリアルに取り組んできました: http://rstudio.github.com/shiny/tutorial/#dynamic-ui
ありがとう。