【发布时间】:2013-08-08 15:48:12
【问题描述】:
当我尝试“编织 HTML”或使用 LyX 生成 pdf 时,我遇到了环境问题。 当我直接运行 R 代码(或使用 Rstudio 编译 HTML 笔记本)时,就可以了。 我已经用 knitr@1.3.7 (dev version) 完成了测试。 knit@1.2 没有问题
在此处给出的示例(test.Rhtml > test.R > init.R > kCommon.R)之后,返回的错误是:
Period: From
Error in eval(expr, envir, enclos) : objet 'kStartDate' introuvable
to
Error in eval(expr, envir, enclos) : objet 'kEndDate' introuvable
test.R
## @knitr INIT
source("./init.R")
print(kStartDate)
print(kEndDate)
test.R 来源 init.R
if (!require(xtable)){
install.packages("xtable")
library(xtable)
}
source("./kCommon.R")
init.R 来源 kCommon.R
# Period
kStartDate <- as.Date("2013-01-01", format="%Y-%m-%d")
kEndDate <- as.Date("2013-06-30", format="%Y-%m-%d")
test.Rhtml
<html>
<head>
<title>TEST</title>
</head>
<body>
<!--begin.rcode set-options, echo=FALSE
output <- "html"
read_chunk('test.R')
opts_chunk$set(fig.width=7, fig.height=4.5, fig.align='center', tidy=FALSE, comment=NA)
end.rcode-->
<!--begin.rcode INIT, echo=FALSE, message=FALSE, warning=FALSE
end.rcode-->
<p>
Period: From <!--rinline as.character(kStartDate) --> to <!--rinline as.character(kEndDate) -->
</p>
<hr/>
<p>
This document has been generated with <!--rinline version$version.string -->
on <!--rinline version$platform -->. <br/>
[<!--rinline date() -->]
</p>
<!--begin.rcode FIN, echo=FALSE, message=FALSE, warning=FALSE
end.rcode-->
</body>
</html>
会话信息
> library(knitr);sessionInfo()
R version 3.0.1 (2013-05-16)
Platform: x86_64-apple-darwin10.8.0 (64-bit)
locale:
[1] fr_FR.UTF-8/fr_FR.UTF-8/fr_FR.UTF-8/C/fr_FR.UTF-8/fr_FR.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] knitr_1.3.7
loaded via a namespace (and not attached):
[1] digest_0.6.3 evaluate_0.4.6
formatR_0.9 stringr_0.6.2 tools_3.0.1
结果(删除选项后)
output <- "html"
read_chunk("test.R")
opts_chunk$set(fig.width = 7, fig.height = 4.5, fig.align = "center", tidy = FALSE,
comment = NA)
Period: From
Error in eval(expr, envir, enclos) : objet 'kStartDate' introuvable
to
Error in eval(expr, envir, enclos) : objet 'kEndDate' introuvable
This document has been generated with R version 3.0.1 (2013-05-16) on x86_64-apple-darwin10.8.0.
[Thu Aug 8 10:35:22 2013]
#EOF#
日志
> require(knitr); knit('test.Rhtml', encoding='UTF-8');
Le chargement a nécessité le package : knitr
processing file: test.Rhtml
|......... | 14%
ordinary text without R code
|................... | 29%
label: set-options
|............................ | 43%
ordinary text without R code
|..................................... | 57%
label: INIT
|.............................................. | 71%
inline R code fragments
Error in eval(expr, envir, enclos) : objet 'kStartDate' introuvable
Error in eval(expr, envir, enclos) : objet 'kEndDate' introuvable
|........................................................ | 86%
label: FIN
|.................................................................| 100%
ordinary text without R code
output file: test.html
[1] "test.html"
>
【问题讨论】:
-
我无法重现 knitr v1.3.7 的问题;您可以将
library(knitr);sessionInfo()的输出添加到您的帖子中吗? -
我在帖子中添加了会话信息。
-
你能把
INIT中的块选项echo=FALSE, message=FALSE, warning=FALSE去掉,重新编译test.Rhtml,然后粘贴那个块的输出吗? -
我已删除所有块选项。我在帖子中添加了结果和日志。
-
INIT块不在输出中,这意味着它没有被读入文档。这很奇怪。你能把所有这些文件放在一个 zip 文件(或 tar 球)中并通过电子邮件发送给我吗? xie@yihui.name