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")())
。
我构建了一个闪亮的应用程序,想在 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")())
。