我希望将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()
和直接&#34;管道&#34;向量的结果?
为什么我想要这个,你问?
*.tex
字符串将以编程方式保存到光盘,稍后再渲染为PDF。在下游函数中从光盘读取呈现*.tex
将使代码更复杂。print()
,save()
,plot()
)。这会让我成为一个坏人(或只是OCD)R开发人员吗?
答案 0 :(得分:1)
您可以使用if cart_item.menuitem.id == i.id:
创建将其输出写入变量con <- textConnection("varname", "w")
的连接,并在varname
的调用中使用output=con
。例如:
knit()
返回与tempfile方法相同的内容,换行符除外。多行将显示为library(knitr)
con <- textConnection("knitted_obj", "w")
knit(text="foo", output = con)
close(con)
knitted_obj
的不同元素。我没有定时,但文本连接因速度慢而闻名,所以这不一定和写入文件系统一样快。
答案 1 :(得分:1)
它应该像这样的单行一样简单:
knitted_obj = knitr::knit(text = "foo")
您可能需要再次阅读帮助页?knitr::knit
以了解它返回的内容。