[英]Including a TeX comment in rmarkdown/knitr document (or pandoc -> TeX output)
[英]Including several tables in tex format in my main document
有没有办法在R中以tex格式生成表格然后在我的* .rnw文件中调用它我必须使用一些用户定义的函数来生成很多表格,然后通过sweave / knitr在我的latex文件中使用它们。 这是一个简单的例子来说明我的观点......
数据:
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')
现在我想将这个data1
放在tex文件中,如下所示
latex(data1,file='myfile.tex')
当我在我的sweave文档中运行上述内容时,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()
我猜可能有更好的方法。 我不知道我在乳胶命令中做了什么错误。 如果有人能通过为我提供更好的方法来帮助我,我将不胜感激
这是我的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}
你可以使用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}
正如其他答案中所建议的那样,最简单的(使用Hmisc::latex
或xtable
)通常只在需要时才生成LaTeX代码。
如果无法做到这一点,以下情况应该有效:
tmp <- latex(data1,file='myfile.tex')
会发生什么是latex
创建文件并返回类latex
的对象。 然后调用print
方法,但它会尝试编译文件并显示结果,这在您的情况下是不可取的。 将结果分配给变量(不会被使用),或将调用包装为invisible
,会抑制对print
的调用。
invisible( latex(data1,file='myfile.tex') )
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.