获取“tables”R 包来打印可以导入到我的 .tex 文件中的文本文件

获取“tables”R 包来打印可以导入到我的 .tex 文件中的文本文件

我正在尝试编写一些 R 代码,从我的(不断发展的)实验中获取数据,制作汇总统计表,并将其输入到我正在编写的 .tex 文档中。我想避免复制粘贴。我想避免使用 sweave,因为我现在没有足够的精力来学习它,而且我的代码很复杂,运行时间很长。

我想要的是一个像我可以用tablesR 中的包得到的表,导出到一个文本文件,然后我可以使用命令将其导入到 .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')’.

答案2

您可以尝试将 R 对象导出到 latex 的其他方法,例如包。它有更多选项,可以更好地控制导出的表类型。一个小例子:指定报告的统计数据中的数字,

xtable(sumStats, digits = 2) 

并可以指定浮动环境,如 longtable 等。请参阅文档画廊举些例子。

相关内容