R 在我的主文档中包括几个tex格式的表

R 在我的主文档中包括几个tex格式的表,r,knitr,tex,R,Knitr,Tex,有没有办法在R中生成tex格式的表,然后在我的*.rnw文件中调用它们 我必须使用一些用户定义的函数生成许多表,然后通过swave/knitr在我的latex文件中使用它们。 这里有一个简单的例子来说明我的观点 数据: 在我的swave文档中运行上述内容时,R-studio陷入了一种过程不会结束的感觉。 我得到以下错误 No file file1170690e2c79.aux. *geometry* driver: auto-detecting *geometry* detected driv

有没有办法在R中生成tex格式的表,然后在我的*.rnw文件中调用它们 我必须使用一些用户定义的函数生成许多表,然后通过swave/knitr在我的latex文件中使用它们。 这里有一个简单的例子来说明我的观点

数据:

在我的swave文档中运行上述内容时,R-studio陷入了一种过程不会结束的感觉。 我得到以下错误

 No file file1170690e2c79.aux.
*geometry* driver: auto-detecting
*geometry* detected driver: dvips
[1] (C:\Users\~~~\AppData\Local\Temp\RtmpeuvW08\file1170690e2c79.aux) )
Output written on file1170690e2c79.dvi (1 page, 604 bytes).
Transcript written on file1170690e2c79.log.
因此,我使用了以下方法

sink('myfile.tex')
latex(data1,file='')
sink()
我想可能有更好的办法。我不知道我在latex命令中犯了什么错误。 如果有人能为我提供更好的方法来帮助我,我将不胜感激


这是我的sweave文件

\documentclass{article}
\usepackage{ctable}
\title{Untitled}

\begin{document}

\maketitle


<<somechunk,results=tex,echo=FALSE>>=
x1 <- round(rnorm(10),2)
x2 <- sample(c('a','b','c'),10,replace=TRUE)
data1 <- cbind(x1,noquote(x2));data1 <- as.data.frame(data1)
names(data1)=c('X1','X2')
sink('myfile.tex')

latex(data1,file='')
sink()
@

Here is my table 1 \include{myfile}

\end{document}
\documentclass{article}
\usepackage{ctable}
\标题{无标题}
\开始{document}
\maketitle
=

x1您可以使用xtable包:

\documentclass{article}
\usepackage{ctable}

\begin{document}

<<somechunk,results=tex,echo=FALSE,results=hide>>=
library(xtable)
x1 <- round(rnorm(10),2)
x2 <- sample(c('a','b','c'),10,replace=TRUE)
data1 <- cbind(x1,noquote(x2));data1 <- as.data.frame(data1)
names(data1)=c('X1','X2')
@

Here is my table 1:

<<results=tex, echo=FALSE>>=
xtable(data1)
@
\end{document}
\documentclass{article}
\usepackage{ctable}
\开始{document}
=
图书馆(xtable)

x1正如其他答案中所建议的,最简单的 (使用
Hmisc::latex
xtable
) 通常只在需要时生成LaTeX代码

如果这不可能,则应采取以下措施:

tmp <- latex(data1,file='myfile.tex')

我知道xtable在这个简化的示例中可以工作,但是我需要生成的表需要latex函数。谢谢@edit这是对的。您必须防止
print.latex
在隐式打印
latex()
返回的latex对象时调用它。为什么不直接
latex(data1,file='')
?我的意思是,为什么必须先创建tex文件,然后手动创建
\include{yourfile}
?这将给您带来维护问题,因为您必须同时处理源代码和输出
\documentclass{article}
\usepackage{ctable}

\begin{document}

<<somechunk,results=tex,echo=FALSE,results=hide>>=
library(xtable)
x1 <- round(rnorm(10),2)
x2 <- sample(c('a','b','c'),10,replace=TRUE)
data1 <- cbind(x1,noquote(x2));data1 <- as.data.frame(data1)
names(data1)=c('X1','X2')
@

Here is my table 1:

<<results=tex, echo=FALSE>>=
xtable(data1)
@
\end{document}
tmp <- latex(data1,file='myfile.tex')
invisible( latex(data1,file='myfile.tex') )