• R语言
  • 在R中运行Sweave()函数时,报错:文件不是ASCII码

我想请教两个问题:

第一,在WinEdt中写的文件为什么不能保存为“.rnw”或“.snw”文件?

第二,由于第一个问题没有解决,只好将WinEdt中写好的文件复制到Tinn-R中,保存为某个“ABC.rnw”文件,当我打开R运行Sweave()函数,试图将这个文件转换成latex文件,可是报错:‘ABC.rnw’is not ASCII and does not declare an encoding。请问这个时候,我该怎么办?

谢谢各位!

这个问题让我纠结了N多天,弄得我寝食不安啊。昨天上午灵感终于来了!

首先说说各个帖子关于R的Sweave( )函数处理法:

——在你的“XXX.tex”文件导言区加上\usepackage{Sweave};

——在R程序开头加上<<>>=,程序结尾加上@;

——把写好的Tex文件保存为“XXX.rnw”或“XXX.snw”文件;

——在R中运行函数Sweave("XXX.rnw")或Sweave("XXX.snw");

——R会自动产生一个“XXX.tex”文件,以及由R程序生成的图形文件等;

——运行你的“XXX.tex”文件;

——运行时如果“找不到Sweav.sty”,就在C盘R的安装目录下,把这个文件找出来,拷贝到运行Latex

  的工作目录中。

——重新运行“XXX.tex”文件就行了!

其实这种方法是很好的,因为R的Sweave( )函数会自动地生成你所需要的结果,把原先Latex不接受的字符全部变成了可以接受的字符了。

但是,情况并不一定都是这样。比如我在楼上说的那两个问题就让人头疼!

下面介绍我的处理方法:

——在你的“XXX.tex”文件导言区加上\usepackage{Sweave};

——在你的Tex文件中这样写

\begin{Schunk}

\begin{Sinput}

把R程序拷贝到这里

  \end{Sinput}

 \begin{Soutput}

把R程序运行的结果拷贝到这里

\end{Soutput}

\end{Schunk}

——运行你的“XXX.tex”文件;

——运行时如果“找不到Sweav.sty”,就在C盘R的安装目录下,把这个文件找出来,拷贝到运行Latex

  的工作目录中;

——重新运行“XXX.tex”。

运行成功了,道理就这么简单,不妨你试试看?

11 天 后

这还简单?这上面所有步骤都是商业软件WinEdt和糟糕软件Sweave在浪费大家的时间,用免费软件RStudio+knitr,什么问题都没有。