我正在尝试编写一些 R 代码,从我的(不断发展的)实验中获取数据,制作汇总统计表,并将其输入到我正在编写的 .tex 文档中。我想避免复制粘贴。我想避免使用 sweave,因为我现在没有足够的精力来学习它,而且我的代码很复杂,运行时间很长。
我想要的是一个像我可以用tables
R 中的包得到的表,导出到一个文本文件,然后我可以使用命令将其导入到 .tex 文档中\input{}
。以下是一些简单的 R 代码,但它不能像我希望的那样工作:
1> fac = c(rep("a",10),rep("b",10),rep("c",10))
1> var = c(rnorm(10,mean=4,sd = 5),rnorm(10,mean=2,sd = 10),rnorm(10,mean=3,sd = 1))
1> d = data.frame(fac,var)
1> library(tables)
1> sumstats = with(d, tabular(var*(fac+1)~mean+sd))
1> latex(sumstats)
\begin{tabular}{llcc}
\hline
& fac & mean & \multicolumn{1}{c}{sd} \\
\hline
var & a & $-0.1415$ & $\phantom{0}7.241$ \\
& b & $\phantom{-}0.3324$ & $14.704$ \\
& c & $\phantom{-}3.1590$ & $\phantom{0}1.118$ \\
& All & $\phantom{-}1.1166$ & $\phantom{0}9.271$ \\
\hline
\end{tabular}
1> write.table.tabular(latex(sumstats),file='sumstats.txt')
\begin{tabular}{llcc}
\hline
& fac & mean & \multicolumn{1}{c}{sd} \\
\hline
var & a & $-0.1415$ & $\phantom{0}7.241$ \\
& b & $\phantom{-}0.3324$ & $14.704$ \\
& c & $\phantom{-}3.1590$ & $\phantom{0}1.118$ \\
& All & $\phantom{-}1.1166$ & $\phantom{0}9.271$ \\
\hline
\end{tabular}
1> read.table('sumstats.txt')
V1
1 character(0)
有没有办法让 R 编写已为 latex 格式化的汇总统计表,从而避免深入研究 sweave?
答案1
无法运行您的代码,但从我在您的帖子中读到的内容来看,这应该有所帮助:
在 R 中:
w <- latex( sumstats, file = "sumstats.tex" )
然后在 LaTeX 中:
\input{sumstats}
假设这一切都发生在同一个文件夹中。
[编辑] 如帮助文件所述:
To prevent the latex file from being displayed store the result of ‘latex’ in an object, e.g. ‘w <- latex(object, file='foo.tex')’.