R认为参数是一个函数,但实际上是一个变量



在RShiny包(用于Web应用程序(中,您有反应变量(当UI中的某些内容更改时自动更新(。使用这些变量时,您需要使用以下语法:variable()变量名称末尾带有括号。

我需要这个反应变量作为我的一个函数的输入。我在server.R部分调用此函数。在那里我使用函数(infile = fa_archive(), ...(,但 R 认为fa_archive()是一个函数而不是一个变量。可能是因为括号,但事实并非如此。我 100% 确定变量fa_archive已定义。事先我只需要fa_archive[[1]]()作为输入,然后我的函数就可以正常工作。但是现在我需要"升级"我的函数以一次包含更多文件,当我使用fa_archive()作为函数中的输入变量时,它会将其识别为函数并返回

错误:找不到函数"fa_archive((">

我还没有真正尝试解决这个问题,因为它看起来很奇怪,使用完整变量而不是它的一部分([[1]](应该如此彻底地改变这一点。这是我的代码的相关部分

fa_archive <- list( 
reactive({ fa_archive_function(input$model1, as.integer(input$lag1)) }),
reactive({ fa_archive_function(input$model2, as.integer(input$lag2)) }),
reactive({ fa_archive_function(input$model3, as.integer(input$lag3)) }),
reactive({ fa_archive_function(input$model4, as.integer(input$lag4)) }))

output$plotSounding1Da <- renderPlot({ plot_profile(infile= fa_archive() , fcdate=fcdate(), ldt=ldt(), prm=input$prmSounding, location=input$location, recent=recent(), add=FALSE)}, width=400, height=500)

当你使用 [reactive] 变量时,你需要使用以下语法:variable()变量名称末尾带有括号。

正确。但这仅适用于reactive变量。而且你的fa_archive()不是一个reactive变量,它是一个正常的R点亮。这就是R抱怨的原因。

但是,仅用reactive(…)包围list调用可能不起作用,因为您的代码还有其他需要修复的问题。如果不知道plot_profile到底做了什么,它不太可能期望reactive组件列表作为参数。

相关内容

最新更新