2017-11-19 5 views
0

次のコードでレンダリングされたテキスト:シャイニー:(操作可能)に分割する出力列のヒントは、光沢のあるアプリI出力における単一単語

output$prediction <- renderText({ 
    unlist(strsplit(unique(candidates()[,"word"])," ")) 
    }) 

strsplitは、しかしながら、出力として、無関係であると思われます単一の文字列として配信されます。

tags$div(
    htmlOutput("prediction", type="button", 
       container = tags$button, 
       class = "btn btn-info") 
) 

1]

結果のHTMLコード

<div> 
     <button class="shiny-html-output btn btn-info shiny-bound-output" 
       id="prediction" type="button"> 
       important interesting boring of people 
     </button> 
</div> 

所望の出力:

2]

出力を合成する各単語にボタンタグを適用できる必要があります。または、他の言葉で、結果のHTMLは次のようになります。

<div> 
<button class="shiny-html-output btn btn-info shiny-bound-output" id="prediction1" type="button">important</button> 
<button class="shiny-html-output btn btn-info shiny-bound-output" id="prediction2" type="button">interesting</button> 
<button class="shiny-html-output btn btn-info shiny-bound-output" id="prediction3" type="button">boring</button> 
<button class="shiny-html-output btn btn-info shiny-bound-output" id="prediction4" type="button">of</button> 
<button class="shiny-html-output btn btn-info shiny-bound-output" id="prediction5" type="button">people</button> 
</div> 

server.Rは1から25まで、言葉の未定義の数を提供できることに注意して取るので、私は5本の異なる電話をかけることはできませんしてくださいserver.Rファイル。

答えて

2

あなたが本当に探しているようなサウンドは、ダイナミックUIを構築する方法です。私のアドバイスは機能を利用することです。あなたのUIの最も基本的な単位を生成し、より複雑なUIを構築するためにそれらを構成する関数を記述します。この場合

、ビルディングブロックは、実際には(少なくとも、あなたの例では)ボタンのスタイルクラスでdivのあるこれらのワードボタン、次のようになります。

wordButton <- function(word) { 
    div(word, class = "btn btn-info") 
} 

そこから、あなたがのために使用することができますループまたはapply関数を呼び出すことができます。ここに完全な例があります:

library(shiny) 

wordButton <- function(word) { 
    div(word, class = "btn btn-info") 
} 

ui <- fluidPage(
    uiOutput("words") 
) 

server <- function(input, output) { 
    words <- reactive({ 
    c("important", "interesting", "boring", "of", "people") 
    }) 

    output$words <- renderUI({ 
    lapply(words(), wordButton) 
    }) 
} 

shinyApp(ui, server) 
+0

私はちょうどまったく同じ答えを与えようとしていました –

+0

完璧な感謝!ほとんどの変換はサーバースクリプトで行われなければならないようです。あなたの答えをもう一度おねがいします。それは私が必要なすべてをやった – agustin

関連する問題