2016-12-24 17 views
0

私はR Shinyのシンプルなサーバー/ユーザープログラムを持っています。私が作成したアプリケーションでは、10個のtextInputsと書かれています。テキスト入力要素の入力IDを動的に削除します

入力の名前は、marker1 marker2 marker3などです。定義済みの値(空白はありません)。私はobserveEventを作成して、ユーザーがSubmitボタンを押したとき(UIで作成されたとき)をチェックして、新しい値を操作できるようにしました。

私は

 print(input$marker1) 

を行うと、それが正常に動作し、それが特定のマーカーの値を示しています。

 for(i in length(markers)) 
    { 
     markername = paste0("marker",i); 
     print(input$markername) 
    } 

私は背後にあるロジックを理解:

問題は、私はすべてのマーカーのためにこれをやってみたいし、それらの数は静的ではありませんので、私はこのアイデアを思い付いた、仕事をdoesntのいる、ありますこれは間違っています。なぜなら入力$の後に入力の実際の名前を入れる必要がありますが、マーカーの数が動的な場合はどうすればよいのでしょうか?

EDIT#1およびUPDATE:

 input[[paste0("name",i)]] 

だから、問題は今:

入力フォーマットを見回した後、私は実際にあなたが入力の名前を貼り付けることができますことを、この1を見つけましたこのようなもの。

 for(i in length(markers)) 
    { 
     global_var[i] <<- input[[paste0("name",i)]] 
    } 
    print(global_var) 

の問題は、今、私は割り当てが正しく完了すると、最後の1から除き、global_varオブジェクトの最初の位置のためのNULL取得することです。

答えて

0

私が遭遇した問題は、私が動的に表示したい入力の名前をどのように設定できるかということでした。上で見たように、私はさまざまなことを試みましたが、今ではソリューション全体を考え出しました。必要な場合は、リスト内の「グループ化された」入力の値をあなたに与えます。

私はグローバルVAR(私も他の出力の値を使用したいので)という名前のnewNamesを使用して、最初にNULLとしてそれを初期化し、残りのコードを以下に示し、そのシンプルlapply:

 lapply(1:length(markers), function(i) 
     { 
     newNames[i] <<- input[[paste0("marker", i)]] 
     }) 
     printf(newNames) 
関連する問題