我在为 Sweave 编程 R 时遇到了一些问题,而#rstats twitter 组经常指向这里,所以我想我应该把这个问题交给 SO 人群。我是一名分析师——不是程序员——所以在我的第一篇文章中轻松一点。
问题出在:我正在用 R 在 Sweave 中起草一份调查报告,并希望使用\Sexpr{}
. 例如,而不是说:
只有 14% 的受访者表示“X”。
我想这样写报告:
只有 \Sexpr{p.mean(variable)}$\%$ 的受访者说“X”。
问题是 Sweave 将表达式 in 的结果转换为\Sexpr{}
字符串,这意味着 R 中表达式的输出与我文档中出现的输出不同。例如,上面我使用了函数'p.mean':
p.mean<- function (x) {options(digits=1) mmm<-weighted.mean(x, weight=weight, na.rm=T) print(100*mmm) }
在 R 中,输出如下所示:
p.mean(variable) >14
但是当我使用 时\Sexpr{p.mean(variable)}
,我的文档中会出现一个未舍入的字符串(在本例中为:13.5857142857143)。我试图将我的函数的输出限制digits=1
在全局环境、函数本身以及各种命令中。它似乎只包含 R 打印的内容,而不是作为表达式结果并最终打印在 LaTeX 文件中的字符转换。
as.character(p.mean(variable)) >[1] 14 >[1] "13.5857142857143"
有谁知道我可以通过重新编程 R 函数或使用 Sweave 中的设置来限制 LaTeX 文件中打印的数字\Sexpr{}
?