我希望能够直接将
knit()
生成的文档以R对象的形式,即字符向量,存储在R中。我知道可以通过将其knit()
到一个tempfile()
文件并导入结果来实现,如下所示:library(knitr)
library(readr)
ex_file <- tempfile(fileext = ".tex")
knitr::knit(text = "foo", output = ex_file)
knitted_obj <- readr::read_file(ex_file)
knitted_obj
返回值
# [1] "foo\n"
有没有一种方法可以在不使用tempfile()
的情况下,直接将结果“管道化”到一个向量中?
你问我为什么要这样做?
*.tex
字符串将被以编程方式保存到磁盘,并稍后呈现为PDF。从磁盘中读取呈现的*.tex
会使代码更加复杂。- 缓存只是更容易,而且将此缓存移动到另一台机器上也很容易。
- 总的来说,我真的很害怕副作用,特别是跨机器/操作系统的文件系统问题。我希望将它们隔离到尽可能少的(
print()
,save()
,plot()
)函数中。
这会让我成为一个不好的(或者只是强迫症的)R开发者吗?
texi2pdf
)的输出,而不触及文件系统。 Knitr是本地的R,所以这是一个不同的问题,我猜测。 - maxheld