2016-06-22 32 views
2

我正在尝试将R的输出写入Latex。我期待着与R得到很好的格式化的表格:转置一张表,从R导出到Latex,使用来自Hmisc包的latex()

raw

当我使用乳胶()函数Hmisc包,我得到这样的:

enter image description here

我如何转表,使它成为2x6而不是6x2?我知道在latex()函数中必须存在一些参数,但我无法弄清楚。

+0

我的问题不是如何在R控制台中更改“summary(all_vars_zb1 [[1]])”输出的外观,而是如何创建此表的Latex版本,其尺寸与R控制台中的尺寸相同。无论RI中的哪个表使用(summary(all_vars_zb1 [[1]]) - 2x6或as.matrix(summary(all_vars_zb1 [[1]])),6x2),latex()函数的输出都是相同的 - 6x2表。所以我的问题是如何使latex()函数在Latex中产生与R对象相同尺寸的输出。 –

+2

您可以调换'summary'对象,'latex'将以您希望的方式构成表格。 'a < - rnorm(1000)''Hmisc :: latex(t(summary(a)))' –

回答

2

摘要返回工具结果奇怪的字符串,在我看来只是简单的丑陋。以下是获取类似汇总输出表中的一种替代方案:

summ <- function(x){ 
    tmp<-quantile(x, c(0,.25,.5,.75,1)) 
    names(tmp)<-c("Min", "1st Qu.", "Median", "3rd Qu.", "Max") 
    return(tmp)} 

与功能Sapply数据恢复更加灵活data.frame:

t(sapply(swiss, summ)) 

        Min 1st Qu. Median 3rd Qu. Max 
Fertility  35.00 64.700 70.40 78.450 92.5 
Agriculture  1.20 35.900 54.10 67.650 89.7 
Examination  3.00 12.000 16.00 22.000 37.0 
Education   1.00 6.000 8.00 12.000 53.0 
Catholic   2.15 5.195 15.14 93.125 100.0 
Infant.Mortality 10.80 18.150 20.00 21.700 26.6 

随着上述@pachamaltese答案,最后汇总表应在表格中免除不明确的Min. :

1

你应该提供一个MWE :)

我所做的这是什么

setwd("/myfolder")  
library(Hmisc) 
table <- summary(swiss) 
table_transpose <- t(table) 

latex(table) 
latex(table_transpose) 

“T” 指转置,这是适用于矩阵或表

运行latex()后R保存了两个.tex文件,我必须将它们粘贴到具有合适结构的文件中,否则将无法编译。

这是最后的.tex

\documentclass[12pt,letterpaper,landscape]{article} 
\leftmargin=0.25in 
\oddsidemargin=0.25in 
\textwidth=6.0in 
\topmargin=-0.9in 
\textheight=9.25in 
\usepackage[margin=1in]{geometry} 

\begin{document} 

\begin{table}[!tbp] 
\begin{center} 
\begin{tabular}{lllllll} 
\hline\hline 
\multicolumn{1}{l}{table}&\multicolumn{1}{c}{}&\multicolumn{1}{c}{}&\multicolumn{1}{c}{}&\multicolumn{1}{c}{}&\multicolumn{1}{c}{}&\multicolumn{1}{c}{}\tabularnewline 
\hline 
    Fertility&Min. :35.00 &1st Qu.:64.70 &Median :70.40 &Mean :70.14 &3rd Qu.:78.45 &Max. :92.50 \tabularnewline 
Agriculture&Min. : 1.20 &1st Qu.:35.90 &Median :54.10 &Mean :50.66 &3rd Qu.:67.65 &Max. :89.70 \tabularnewline 
Examination&Min. : 3.00 &1st Qu.:12.00 &Median :16.00 &Mean :16.49 &3rd Qu.:22.00 &Max. :37.00 \tabularnewline 
    Education&Min. : 1.00 &1st Qu.: 6.00 &Median : 8.00 &Mean :10.98 &3rd Qu.:12.00 &Max. :53.00 \tabularnewline 
    Catholic&Min. : 2.150 &1st Qu.: 5.195 &Median : 15.140 &Mean : 41.144 &3rd Qu.: 93.125 &Max. :100.000 \tabularnewline 
Infant.Mortality&Min. :10.80 &1st Qu.:18.15 &Median :20.00 &Mean :19.94 &3rd Qu.:21.70 &Max. :26.60 \tabularnewline 
\hline 
\end{tabular}\end{center} 
\end{table} 

\begin{table}[!tbp] 
\begin{center} 
\begin{tabular}{lllllll} 
\hline\hline 
\multicolumn{1}{l}{summary}&\multicolumn{1}{c}{ Fertility}&\multicolumn{1}{c}{ Agriculture}&\multicolumn{1}{c}{ Examination}&\multicolumn{1}{c}{ Education}&\multicolumn{1}{c}{ Catholic}&\multicolumn{1}{c}{Infant.Mortality}\tabularnewline 
\hline 
&Min. :35.00 &Min. : 1.20 &Min. : 3.00 &Min. : 1.00 &Min. : 2.150 &Min. :10.80 \tabularnewline 
&1st Qu.:64.70 &1st Qu.:35.90 &1st Qu.:12.00 &1st Qu.: 6.00 &1st Qu.: 5.195 &1st Qu.:18.15 \tabularnewline 
&Median :70.40 &Median :54.10 &Median :16.00 &Median : 8.00 &Median : 15.140 &Median :20.00 \tabularnewline 
&Mean :70.14 &Mean :50.66 &Mean :16.49 &Mean :10.98 &Mean : 41.144 &Mean :19.94 \tabularnewline 
&3rd Qu.:78.45 &3rd Qu.:67.65 &3rd Qu.:22.00 &3rd Qu.:12.00 &3rd Qu.: 93.125 &3rd Qu.:21.70 \tabularnewline 
&Max. :92.50 &Max. :89.70 &Max. :37.00 &Max. :53.00 &Max. :100.000 &Max. :26.60 \tabularnewline 
\hline 
\end{tabular}\end{center} 
\end{table} 

\end{document} 

这是

enter image description here

入住这里需要一些化妆更像xtable Tools for making latex tables in R