2016-08-26 3 views
3

ベクトルを表示値として使用し、別のベクトルを選択肢の実際の値または名前として使用する方法があるのが不思議です各値を明示的に宣言する必要はありません。R Shiny:表示用ベクトルと選択リスト内の値用の別のベクトル

は簡単な例です:

# vect1 is the vector I would like as the display list 
vect1 <- c("A", "B", "C", "D", "E") 

# vect2 is the vector I would like as the name group 

vect2 <- c("01", "02", "03", "04", "05") 


    # To get the desired output, this is how I would create a selectInput widget on the 
    # ui side to get the desired outcome. 
    selectInput("exampleinput", 
       choices = list("A" = "01", 
          "B" = "02", 
          "C" = "03", 
          "D" = "04", 
          "E" = "05")) 


# Instead, I would like to do something like the following to create the same output: 
selectInput("exampleinput", choices = list(vect1 = vect2)) 

これはことも可能である場合、私はわからないんだけど、それは非常に便利かつきれいになります。アプリケーションは、私は、アプリケーションのユーザーにとって無意味な異なる州のコードを持っているということです。私の場合、コードはデータを読み込むために必要です。実際に使用しているベクトルは動的に作成されます。私のアプリは完璧に動作しています。私は、私が表示したい状態の略語を、私が舞台裏で使う状態コードに変換する機能を簡単に書くことができることを知っています。上記のようなことが可能ならば、もっとクリーンで簡単になります。

ご協力ありがとうございました!

+0

。この回答を見る http://stackoverflow.com/questions/16173325/interactively-change-the-electlectput-choices – tcash21

+0

私は指定する必要がありますが、私のUIはインタラクティブであり、私はその解決策を成功させました。しかし、私の質問は別のものです。私は単に選択肢リストの "2つの側面"に2つのベクトルを割り当てることができるかどうかを尋ねています。 – SEHOCKETT

+0

ああ、その場合は 'choices = setNames(vect1、vect2)'を試してみることができます – tcash21

答えて

3

あなたはこのようsetNamesを使用することができます:あなたはUIが無効にする必要があり

choices = setNames(vect2,vect1) 
selectInput("exampleinput","exampleinput", choices = choices) 
+1

答えを更新してください: 'choose = setNames(vect2、vect1) selectInput(" exampleinput "、choicesinput"、choices = choices) 'リクエストごとの出力は逆でなければならず、' selectInput'は 'label ' –

+2

、ありがとう! – tcash21

関連する問題