在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
组件列表作为参数。