2016-04-22 111 views
1

我是新的R闪亮,需要你的帮助。我想使用两个动作按钮(是和否)来针对单个问题提供用户反馈(是否讽刺?)并将响应发送回server.R。但是,这两个操作按钮都不会向服务器发送任何响应。我只想让server.R知道用户选择了是或否。我不明白其背后的原因。下面是我的代码为ui.R和server.R,提前感谢您的帮助。多个行动按钮不工作在R闪亮

Ui.R

library(shiny) 

shinyUI(fluidPage(
h3(titlePanel("Sarcasm Detection")), 

sidebarLayout(
sidebarPanel(width=6, 
    h3("Enter your tweet:"), 
    br(), 

    textInput("text",""), 
    submitButton("Check for Sarcasm"), 

    hr(), 
    strong(textOutput("text_output")), 
    br(), 
    p("Is it correct?"),  
    actionButton("yessarcasm","Yes"), 
    actionButton("nosarcasm","No") 
), 
mainPanel(
    verbatimTextOutput("issarcasm") 
)) 
)) 

Server.R

library(shiny) 

shinyServer(function(input, output) { 

output$text_output <- renderText({ 

if(input$text %in% "sar"){ 
    "Yes, it is sarcastic" 
} 
else{ 
    "No, it is not sarcastic" 
} 

}) 

output$issarcasm <- renderText({ 
input$yessarcasm 
input$nosarcasm 
    if(input$yessarcasm != 0) { 
    "User Feedback: Correct Prediction" 
    } 
    else if (input$nosarcasm != 0) { 
    "User Feedback: Incorrect Prediction" 
    } 
})  
}) 

回答

3

问题在于submitButton。该文件指出,

形式,包括提交按钮不会自动更新他们的 输出时,输入的改变,而他们等待,直到用户明确 点击提交按钮。

因此,如果您有submitButton,其他输入不再更新,除非您之后按下提交按钮。解决方案是用actionButton替换它,并在服务器代码中使用observeEvent

在ui.R

actionButton("action", "Check for Sarcasm"), 

在server.R

observeEvent(input$action, { 
output$text_output <- renderText({ 

    if(input$text %in% "sar"){ 
     "Yes, it is sarcastic" 
    } 
    else{ 
     "No, it is not sarcastic" 
    } 

}) 
}) 
+0

你的建议的工作。我没有意识到提交按钮是两个操作按钮无响应背后的原因。现在这个表格按我的预期工作。非常感谢您的帮助。 – bigdataumd