Shiny to Markdown - 使用 get 函数寻址对象

Shiny to Markdown - adressing objects with get function

我构建了一个闪亮的应用程序,想在 markdown 代码中使用反应函数。下载处理程序如下所示,因此环境没有变化:

output$Report <- downloadHandler(
        filename = function() {
            paste('Report.pdf')
        },
        
        content = function(file) {
            src <- normalizePath('report.Rmd')
            
            # temporarily switch to the temp dir, in case you do not have write
            # permission to the current working directory
            owd <- setwd(tempdir())
            on.exit(setwd(owd))
            file.copy(src, 'report.Rmd', overwrite = TRUE)
            
            library(rmarkdown)
                        
            out <- render('report.Rmd', pdf_document()) 
            file.rename(out, file)
        }
    )

如果我直接通过以下方式寻址我的对象:

summary(Model_1())

它工作正常。但是如果我想把它放在一个函数中并通过以下方式获取对象:

summary(get(paste0("Model_1()")))

Markdown 找不到对象。由于我有一个高度动态的闪亮应用程序,我想通过这样的方式获得摘要:

function(i){
summary(get(paste0("Model_",i,"()")))

还尝试将带有参数列表的 Model_1() 传递给 markdown 并获取它,但没有成功。 不明白为什么 get() 在直接寻址对象时会出现问题。 任何人都可以向我解释这样做的原因或者有替代 get() 的方法吗?

谢谢! 最好的马塞尔

您需要将要访问的对象的名称传递给get()。用于访问反应值的括号不是其中的一部分。请尝试 summary(get("Model_1")())