2016-05-31 90 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