我想请教两个问题:
第一,在WinEdt中写的文件为什么不能保存为“.rnw”或“.snw”文件?
第二,由于第一个问题没有解决,只好将WinEdt中写好的文件复制到Tinn-R中,保存为某个“ABC.rnw”文件,当我打开R运行Sweave()函数,试图将这个文件转换成latex文件,可是报错:‘ABC.rnw’is not ASCII and does not declare an encoding。请问这个时候,我该怎么办?
谢谢各位!
在R中运行Sweave()函数时,报错:文件不是ASCII码
这个问题让我纠结了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”。
运行成功了,道理就这么简单,不妨你试试看?
这还简单?这上面所有步骤都是商业软件WinEdt和糟糕软件Sweave在浪费大家的时间,用免费软件RStudio+knitr,什么问题都没有。