2016-05-31 82 views
0

我有一個非常簡單的閃亮應用程序。用戶輸入一個詞組,應用程序提取最後一個詞並打印出來。更改textOutput格式的格式

require(shiny) 
require(stringi)   
require(stringr)  

server <- function(input, output) { 
     tokens <- reactive({ 
       token <- tolower(input$sentence) 
       token <- gsub("[^[:alnum:]['-]", " ", token) 
       token <- gsub("^\\s+|\\s+$", "", token) 
     }) 

     output$lastOne <- renderPrint({ 
       word(tokens(), -1) 
     }) 


} 

ui <- navbarPage("Filter", 
       tabPanel("The App", 
          column(8, offset = 4, 
           textInput(inputId = "sentence", label = "Enter your phrase"), 
           submitButton("Filter") 
         ), 

          fluidRow(
            textOutput('lastOne') 
         ) 
       ), 

       tabPanel("How to use") 
) 


shinyApp(ui = ui, server = server) 

如何更改textOutput的格式?例如,它應該看起來像一個按鈕。

+0

您可以使用'renderUI'來使用textInput值動態創建一個按鈕。或者,您可以使用CSS來使文本看起來像一個按鈕(請參閱http://stackoverflow.com/questions/26189587/how-to-make-a-text-or-html-tag-look-like-a-按鈕) –

+0

要麼我不明白你的解決方案,要麼我表達了我的自我模糊。目前,'textOutput'顯示爲普通文本。但我希望以不同的格式顯示此文本,就好像它是一個按鈕。或者一些彩色背景或其他什麼。 – feder80

+0

我會舉一個例子 –

回答

0

以下是使用renderUI的示例。如果你只想要一些顏色背景,你也可以嘗試CSS。 CSS也可以使它看起來像一個按鈕,但它有點棘手。

require(shiny) 
require(stringi)   
require(stringr)  

server <- function(input, output) { 
    tokens <- reactive({ 
     token <- tolower(input$sentence) 
     token <- gsub("[^[:alnum:]['-]", " ", token) 
     token <- gsub("^\\s+|\\s+$", "", token) 
    }) 

    output$lastOne <- renderUI({ 
     tags$button(word(tokens(), -1)) 
    }) 

} 

ui <- navbarPage("Filter", 
       tabPanel("The App", 
          column(8, offset = 4, 
           textInput(inputId = "sentence", label = "Enter your phrase"), 
           submitButton("Filter") 
         ), 

          fluidRow(
           uiOutput("lastOne") 
         ) 
       ), 
       tabPanel("How to use") 
) 


shinyApp(ui = ui, server = server) 
+0

就是這樣,謝謝 – feder80