【发布时间】:2013-06-30 11:53:36
【问题描述】:
当我在 RStudio 中编译 .rnw 文件并创建 pdf 时,.tex/.pdf 中有一些错误的内联值。我试图创建该问题的通用示例,但无法在新示例中重现它。所以我的问题有一些具体的问题。我希望读者可以帮助我解决问题的过程。我尝试过的任何方法似乎都不起作用。
我将从我的 WORKING 示例开始,因为它展示了我的整体设置:
\documentclass[11pt,fullpage,titlepage]{article}
\title{Test}
\begin{document}
\bibliographystyle{apalike}
\maketitle
<<setup, include=FALSE>>=
# set working directory
wd <- "/Users/ericpgreen/Desktop/test/"
setwd(wd)
# rnw file saved in "/Users/ericpgreen/Desktop/test/scripts"
# load packages
require(knitr)
require(formatR)
# set chunk options
opts_knit$set(root.dir = '../') # up one level from scripts folder
@
Create data
<<data>>=
set.seed(1)
dat <- data.frame(v1 = rnorm(10),
v2 = factor(sample(c(0,1), 10, replace=TRUE)),
v3 = rnorm(10),
v4 = rnorm(10) )
mean.v1 <- mean(dat$v1)
mean.v1
@
mean is equal to \Sexpr{mean.v1}
\end{document}
同样,这个例子有效。 R 中的 mean.v1 对象等于 0.1322028,这是编译文档时出现在 \Sexpr{mean.v1} 位置的值。
然而,在我的例子中(此处未显示),R 对象的值与编译文档时 \Sexpr{} 替换的值不匹配。 R对象rr.ipt.init的正确值为1.4。
但是,当文档编译以下行时:
A relative risk of \Sexpr{round(rr.ipt.init, digits=2)}
我得到的值为 1.92。
关于这个错误值的来源有什么想法吗?我已经清除了我的缓存,清除了工作区,重新启动了 R,但我无法让文档为 rr.ipt.init 编译正确的值。
会话信息() R 版本 3.0.1 (2013-05-16) 平台:x86_64-apple-darwin10.8.0(64位)
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] splines parallel compiler grid stats graphics grDevices utils datasets methods
[11] base
other attached packages:
[1] survival_2.37-4 reshape2_1.2.2 mice_2.17 nnet_7.3-6 experiment_1.1-1
[6] boot_1.3-9 compute.es_0.2.1 corpcor_1.6.6 MASS_7.3-26 lme4_0.999999-2
[11] Matrix_1.0-12 lattice_0.20-15 RColorBrewer_1.0-5 scales_0.2.3 gridExtra_0.9.1
[16] ggplot2_0.9.3.1 lubridate_1.3.0 data.table_1.8.8 xtable_1.7-1 formatR_0.7
[21] knitr_1.2 plyr_1.8
loaded via a namespace (and not attached):
[1] colorspace_1.2-2 dichromat_2.0-0 digest_0.6.3 evaluate_0.4.3 gtable_0.1.2 labeling_0.1
[7] memoise_0.1 munsell_0.4 nlme_3.1-109 proto_0.3-10 rpart_4.1-1 stats4_3.0.1
[13] stringr_0.6.2 tools_3.0.1
【问题讨论】:
-
没有代码来重现这个“错误”我们可能有很多原因。如果您能给我们一个可重现的代码来重现此行为,那将会更简单
-
我希望可以。当我尝试在新文件中重现错误时,我不能。似乎我的设置有一些特定的东西。您能想到为什么 \Sexpr 不会返回与我在工作区中看到的对象相同的值的任何原因吗?
-
它可能与您的代码有关,但由于不可能,我不知道如何提供帮助。有时它们是小错字,有时难以捕捉。尝试将对象
rr.ipt.init的名称更改为其他名称,以查看它是您的代码还是有另一个同名的对象 -
我知道这是一种令人沮丧的提问方式。 (还是)感谢你的建议。我将代码块中的
rr.ipt.init重命名为rr.ipt.init1,并将\Sexpr{rr.ipt.init} 更改为\Sexpr{rr.ipt.init1}。然后我运行了文件中的所有代码块并编译了文档。我的 R 工作空间中rr.ipt.init1的值与编译文档中rr.ipt.init1的值之间仍然存在差异;在 R 中仍然是 1.4,在编译后的文档中仍然是 1.92。 -
嗯,我不知道有一个现有的错误可以解释这可能是别人可以的,同时我能给你的唯一建议是逐行重新检查你的代码并重新开始没有工作区的 R 会话。祝你好运