2011-06-07 27 views
7

Kendi bireysel başlıkları ile yan yana veya üst üste lateks olarak yazdırmak istediğim veri tablolarım (d1 ve d2) var. Bunu xtable() ile doğrudan yapmak mümkün mü? İki tablo ayrı olmalıdır, yani biz bunları Tablo x (a) ve Tablo x (b) olarak adlandırabiliriz, ancak bitişik veya yığılmış olmalıdırlar. Eğer düzen (tabular, subfloat, minipage için uygun bulduğunuz herhangi komutla LaTeX belgeye ben farklı dosyalarda iki ayrı tablolarda (print.xtable() için file= seçeneği bakınız) olarak sonuçları kaydetme öneriyoruzR: İki tabloyu xtable ile yazdır()

+0

? Daha sonra xtable (rbind (d1, d2)) 'veya' xtable (cbind (d1, d2)) '' 't doğru olmalıdır? –

+0

Tabloları Xa ve Xb olarak ayrı tutmak isterseniz, bu daha çok lateks etiketleme sorusu haline gelir. Buradaki moderatörlerden biri, sorunuzu taşıyabilmelidir. –

+0

@SachaEpskamp 'rbind' yalnızca her iki tablonun aynı" ncol "(veya" cbind'/'nrow') içinse çalışır. –

cevap

13

ve sonra input onları, vb.). Genelde yaptığım işte bu, genel olarak Hmisc paketindeki LaTeX tesislerine güvenmeme rağmen. Bunları yalnızca bağımsız bir PDF olarak yazdırmak isterseniz, belgeniz için standalone sınıfını kullanın. Sonuç İşte

\documentclass{article} 
\usepackage{subfig} 
\usepackage{graphicx} 

\begin{document} 

\begin{table}[ht] 
\centering 
\subfloat[Table x(a)]{\label{tab:tab1a}\scalebox{.5}{\input{./ta}}}\quad 
\subfloat[Table x(b)]{\label{tab:tab1b}\scalebox{.5}{\input{./tb}}} 
\caption{Caption about here} 
\label{tab:tab1} 
\end{table} 

\end{document} 

edilir:

enter image description here

sonra

data(tli) 
fm1 <- aov(tlimth ~ sex + ethnicty + grade + disadvg, data=tli) 
print(xtable(fm1), file="ta.tex", floating=FALSE) 
print(xtable(head(tli, n=5)), file="tb.tex", floating=FALSE) 

, kisa tex sarıcı (pdflatex ile derleme):

Yani, burada bir örnek

de için \scalebox komutunu kaldırın @David tarafından belirtildiği gibi varsayılan boyutlarına sığacak kadar dar olmadıkça, hata (yığılmış) düzen.

enter image description here

+0

Mükemmel! Sağol Chl. – user702432

+0

@chi kaldırma '\ scalebox', varsayılan boyutlarına sığacak kadar darsa, tabloları yığmaz. –

+0

@David Ah, Bence haklısın. Yanıtımı buna göre güncelledi! – chl

9

Alan Munn's answer to a similar question on tex.stackexchange.com bakınız. bir tablo olarak

\documentclass{article} 
\usepackage[utf8]{inputenc} 
\usepackage{booktabs} 
\usepackage{caption} 
\title{Side-by-side xtables} 
\author{} 
\date{} 
\begin{document} 
\maketitle 
First some R code to create some data. 
<<>>= 
myData <- matrix(c(19,89,23,23,74,44,16,39,67),ncol=3,byrow=TRUE) 
colnames(myData) <- c("A","B","C") 
rownames(myData) <- c("1","2","3") 
myData2 <- myData * 2 
@ 

Now we place the data in two side-by-side tables: 

\begin{table}[htb] 
\begin{minipage}{.45\textwidth} 
\centering 
<<echo=FALSE,results=tex>>= 
library("xtable") 
print(xtable(myData), 
    floating=FALSE, 
    hline.after=NULL, 
    add.to.row=list(pos=list(-1,0, nrow(myData)), 
    command=c('\\toprule\n','\\midrule\n','\\bottomrule\n'))) 
@ 
\captionof{table}{The first table} 
\end{minipage} 
\begin{minipage}{.45\textwidth} 
\centering 
<<echo=FALSE,results=tex>>= 
print(xtable(myData2), 
    floating=FALSE, 
    hline.after=NULL, 
    add.to.row=list(pos=list(-1,0, nrow(myData2)), 
    command=c('\\toprule\n','\\midrule\n','\\bottomrule\n'))) 
@ 
\captionof{table}{The second table} 
\end{minipage} 
\end{table} 
\end{document} 

output of code

İlgili konular