繁体   English   中英

匹配错误(el,set,0L):“匹配”需要向量参数?

[英]Error in match(el, set, 0L) : 'match' requires vector arguments?

在 R 中的 Shiny 中运行以下代码:

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 

有谁知道这是什么意思,以及如何解决这个问题? 谢谢!

您不需要将输入放在反应式中以获取值,但输入应该在反应式表达式中。 当闪亮的应用程序启动时,反应表达式之外的任何内容都只会执行一次。 如果您尝试在反应式表达式之外使用input值,则会出现错误。 根据您要对input$report_type执行的操作,您可以将其放入reactive (当然)、 observeobserveEvent中。

以下是一些基本示例:

反应式:

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(input$report_type, {
  if ( is.element(input$report_type,"Enterprise_user"))
   ...
}) 

这是关于闪亮和反应性的很棒的教程:http: //deanattali.com/blog/building-shiny-apps-tutorial/#reactivity-101

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM