2015-06-27 15 views
6

Bazı R kodlarından çıktıları yakalamaya çalışıyorum ve lateks koduyla değiştirin.R çıktısını alın ve LaTeX kodu ile değiştirin

bu kodu çalıştırırsanız:

[1] ""                           
[2] "% Table created by stargazer v.5.1 by Marek Hlavac, Harvard University. E-mail: hlavac at fas.harvard.edu" 
[3] "% Date and time: Sat, Jun 27, 2015 - 11:36:07"                
[4] "\\begin{table}[!htbp] \\centering "                  
[5] " \\caption{The main caption of the table.} "                
[6] " \\label{} "                        
[7] "\\begin{tabular}{@{\\extracolsep{5pt}} cccc} "                
[8] "\\\\[-1.8ex]\\hline "                      
[9] "\\hline \\\\[-1.8ex] "                      
[10] " & mpg & cyl & disp \\\\ "                     
[11] "\\hline \\\\[-1.8ex] "                      
[12] "Mazda RX4 & $21$ & $6$ & $160$ \\\\ "                  
[13] "Mazda RX4 Wag & $21$ & $6$ & $160$ \\\\ "                 
[14] "Datsun 710 & $22.800$ & $4$ & $108$ \\\\ "                 
[15] "Hornet 4 Drive & $21.400$ & $6$ & $258$ \\\\ "                
[16] "Hornet Sportabout & $18.700$ & $8$ & $360$ \\\\ "               
[17] "\\hline \\\\[-1.8ex] "                      
[18] "\\end{tabular} "                       
[19] "\\end{table} " 

Bununla hattını 5 değiştirmeniz gerekiyor:

" \\caption[short caption]{The main caption of the table.} " 

Bunu nasıl Bu çıkış olduğunu

library(stargazer) 
x <- capture.output(stargazer(mtcars[1:5, 1:3], summary = FALSE, title="The main caption of the table.")) 

x 

?

+2

'x <- sub (" \\ altyazı {tablonun ana başlığı.} "," \\ altyazı [kısa başlık] {Masanın ana başlığı.} ", Fixed = TRUE, x)' ? –

+1

@ StevenBeaupré bunu bir cevap olarak eklemek ister mi? – luciano

cevap

5

Dene:

x <- sub("\\caption{The main caption of the table.}", 
     "\\caption[short caption]{The main caption of the table.}", fixed = TRUE, x) 
0

Bu aklındakini biraz daha farklıdır, ancak belki de sadece caption.width argüman vardır xtable, örneğin kullanabilirsiniz:

print.xtable(xtable(mtcars[1:5, 1:3], 
        caption="The main caption of the table"), 
      caption.width="10cm", 
      caption.placement="top") 

çıktısı tam olarak ne için gidiyoruz değil, ama daha özlü kodu tercih ederseniz, belki sizin amaçlarınıza bunu bükebilir; ?print.xtable den: caption.width NULL ve tip = "lateks" değilse

başlık, belirtilen genişlikte bir "parbox" yerleştirilir. Varsayılan değer NULL. (Örneğin digits) stargazer o maç için tablonun geri kalanının aynı biçimlendirmeye almak için

% latex table generated in R 3.1.3 by xtable 1.7-4 package 
% Tue Jun 30 14:52:06 2015 
\begin{table}[ht] 
\centering 
\parbox{5cm}{\caption{The main caption of the table}} 
\begin{tabular}{rrrr} 
    \hline 
& mpg & cyl & disp \\ 
    \hline 
Mazda RX4 & 21.00 & 6.00 & 160.00 \\ 
    Mazda RX4 Wag & 21.00 & 6.00 & 160.00 \\ 
    Datsun 710 & 22.80 & 4.00 & 108.00 \\ 
    Hornet 4 Drive & 21.40 & 6.00 & 258.00 \\ 
    Hornet Sportabout & 18.70 & 8.00 & 360.00 \\ 
    \hline 
\end{tabular} 
\end{table} 

Ayrıca diğer seçenekler etrafında karışıklık gerekecek: Burada

çıkışı var biçimlendirmenin tam olarak ne olduğuna bağlı olarak.