2013-05-20 8 views
6

で複数のチェックボックスの値を取得する私はsidebarPanel内で次のように定義されたサイドパネルのチェックボックスのシリーズを、持っています(例えば、名前が 'display_のcheckboxInputを持っていたら、自動的に結果を解析したいと思う)。これを行うには、私が試した:シャイニー

displayIdx <- grep("display_", names(input)) 
facilityCode_keep <- names(input)[ displayIdx ][ input[ displayIdx ] ] 

を残念ながら、結果がでていること:

Error: Single-bracket indexing of reactivevalues object is not allowed. 

つの質問:

  1. にはどうすれば文字ベクトルにcheckboxInput Sシリーズを変換できますか?
  2. 単一ブラケットのインデクシングを許可しないのはどうですか? inputに割り当てようとしていたのかどうか分かりましたが、そうではありません。

答えて

9

一連のcheckboxInputsを文字ベクトルに変換するにはどうすればよいですか?

二重ブラケットインデックスを使用できます。しかし、この場合は、代わりにcheckboxGroupInput関数を使用することを検討してください。これは、選択した値の文字ベクトルを返します。

なぜ単括弧ではないインデックスはありますか?

単一ブラケットのインデックス作成はサブセット化ですが、二重ブラケットインデックス作成は要素の取得(またはそのようなもの)です。入力オブジェクトはmap/hash/dict/environmentに似ていますが、名前付きベクトルと似ていますので、部分集合は実際には意味がありません。 (同様に、Rの環境オブジェクトのインデックスを一括することはできません。インデックスを二重にすることができます)

+0

完璧、ありがとう!なぜ単一括インデックス作成が許可されないのか? –

+1

シングルブラケットインデックス作成はサブセット化ですが、ダブルブラケットインデックス作成は要素検索(またはそのようなもの)です。 'input'オブジェクトはmap/hash/dict/environmentのようなものですが、名前付きベクトルと似ていますので、部分集合は実際には意味がありません。 (同様に、Rの環境オブジェクトには単一のインデックスを付けることはできません。インデックスは二重にしかできません) –

+0

本当に有益な答えをありがとう。私はあなたの応答にそれを加えました。 –

関連する問題