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