在Shiny in R中运行以下代码:
client_report_type = reactive({ input$report_type })
if ( is.element(client_report_type,"Enterprise_user"))
...
我遇到以下错误消息:
Error in match(el, set, 0L) : 'match' requires vector arguments
有谁知道这是什么意思,以及如何解决问题? 谢谢!
答案 0 :(得分:0)
您不需要在反应中输入一个输入来获取值,但输入应该在反应式表达式中。当闪亮的应用程序启动时,反应式表达式之外的任何内容都只会执行一次。如果您尝试在反应式表达式之外使用input
值,则会出现错误。根据您对input$report_type
的处理方式,您可以将其放在reactive
(当然),observe
或observeEvent
。
以下是一些基本示例:
<强>反应性:强>
dat <- reactive({
if ( is.element(input$report_type,"Enterprise_user")) {
...
myData
} else {
NULL
}
})
<强>观察:强>
observe({
if (is.null(input$report_type))
return()
if ( is.element(input$report_type,"Enterprise_user"))
...
})
<强> observeEvent:强>
observeEvent(input$report_type, {
if ( is.element(input$report_type,"Enterprise_user"))
...
})
这是关于闪亮和反应性的精彩教程:http://deanattali.com/blog/building-shiny-apps-tutorial/#reactivity-101