代码
hello.Rnw:
\documentclass{article}
\begin{document}
\SweaveOpts{concordance=TRUE}
\end{document}
命令:
rnwfile <- system.file("Sweave", "hello.Rnw", package = "utils")
Sweave(rnwfile)
输出:
SweaveReadFile中的错误(文件,语法,编码=编码): 没有名为''found
的Sweave文件
问题
这是什么问题?使用另一个更复杂的文件输出相同。如果我添加Sweave()只为hello.Rnw工作的文件的路径,但不是更复杂的文件。然后输出是:“错误:'test.Rnw'不是ASCII并且不声明编码”。
答案 0 :(得分:2)
system.file()
函数用于查找作为R包的一部分安装的文件。例如,如果要运行R附带的Sweave示例,则必须是实际提供的示例,例如。
list.files(system.file("Sweave",package="utils"))
## [1] "example-1.Rnw" "Sweave-test-1.Rnw"
Sweave(system.file("Sweave","example-1.Rnw",package="utils"))
工作正常。 (您可能对使用此语法的?Sweave
文档感到困惑 - 它不是Sweave工作流程的必要部分,只是用于检索示例输入文件。)
如果您想在自己的Sweave()
个文件上运行.Rnw
,则需要确保它们位于您的工作目录中(或指定完整路径);见?setwd
/ ?getwd
。
我们需要查看test.Rnw
才能知道问题所在。
如果您不喜欢Sweave,我强烈建议您查看knitr
包:它与Sweave相同,但(IMO)更好。 (它也有很好的记录。)