【发布时间】:2015-09-16 20:05:20
【问题描述】:
我想使用 knitr 生成一个文档,其中包含在 R 中单独定义的数字、表格和图形。我有一个单独的 .R 脚本,我在其中定义了感兴趣的变量,并且我已经执行了这个脚本并验证变量是否在内存中。然后,在.Rmd 文件中,我有 R 标记代码,我尝试在其中显示我在 R 中定义的变量。每当我尝试编织时,我都会收到错误消息,说明如下:
unique(c("AsIs", oldClass(x))) 中的错误:找不到对象“lamdaQ6”...
显然,knitr 进程启动了一个新环境,该环境排除了已定义的变量。我有相当广泛的 R 代码来定义要包含在文档中的变量,我希望将其与 R 标记代码分开(为了清楚起见,并且因为 R 标记不是 R 的良好开发环境)。
是否有一些方法可以在 knitr 中保留对 R 内存中现有变量的认识?我已经广泛搜索并没有找到解决方案,可能是因为我不知道正确的术语。
【问题讨论】:
-
您可以通过在一个块中获取
.R脚本来执行您的代码。 -
这是有道理的。但是,我在文档的顶部(在“标题”部分之后)这样做了,采购过程没有问题,但随后它继续给出相同的错误,即无法找到该 R 文档中定义的数据。在此之前,我还尝试将缓存设置为 true。这是我在标题部分之后添加的内容(R 代码定义了变量 lambdaQ6): [code]
{r setup, include=FALSE} knitr::opts_chunk$set(cache=TRUE){r,echo=FALSE} setwd("c:\\Kinetics") source("Kinetics.R")Decay Rate: lambda =r lamdaQ6[/code]
标签: knitr