8

サイドパネルに一連のチェックボックスがあり、内部で次のように定義されていますsidebarPanel

sliderInput("days", 
                "Days to monitor:", 
                min = 1, 
                max = 50, 
                value = 5),
    checkboxInput("display_CMC", "Carolinas Medical Center", TRUE),
    checkboxInput("display_MariaParham", "Maria Parham", TRUE),
    checkboxInput("display_WakeMed", "Wake Med", TRUE)

これらの結果をプログラム的な方法で文字ベクトルに変換したいと思います (たとえば、checkboxInput という名前があった場合display_、結果を自動的に解析したい)。そのために、私は試しました:

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

残念ながら、それは次の結果になります。

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

2 つの質問:

  1. checkboxInput一連のs を文字ベクトルに変換するにはどうすればよいですか?
  2. 単一ブラケットのインデックス作成を禁止するとどうなりますか。に割り当てようとしていたかどうかは理解できましinputたが、そうではありません。
4

1 に答える 1

10

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

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

単一ブラケットの索引付けを使用しないのはなぜですか?

単一ブラケットのインデックス作成はサブセット化ですが、二重ブラケットのインデックス作成は要素の検索 (またはそのようなもの) です。入力オブジェクトは、名前付きベクターというよりもマップ/ハッシュ/辞書/環境に似ているため、サブセット化は実際には意味がありません。(同様に、R の環境オブジェクトにシングル ブラケット インデックスを使用することはできません。ダブル ブラケット インデックスのみを使用できます。)

于 2013-05-20T17:47:19.170 に答える