2014-11-06 40 views
6

Bir Rnw belgesine xtable yazısı eklemek istiyorum. İşte kod. Maalesef, masanın altına alt yazı ekleyemiyorum. \ Caption {} işlevini denedim, ancak PDF yazdırmıyor.xtable bir başlığın üstüne eklenmesi ve tablo altında bir altyazının eklenmesi

R: xtable caption (or comment)'u gördüm, ancak R'de lm() işlevinden oluşturulan bir tablo için çalışmıyor. Herhangi bir ipucunuz var mı?

<<yoman,echo=FALSE,results=tex>>= 
library(xtable) 

pop5lm <- lm(mpg ~ wt, data=mtcars) #my linear model 

print(xtable(pop5lm, 
      caption = c("Estimates of linear model for father Muro CB"), 
      label = "tab:one", digits = c(0,2, 2, 2,3)), 
      table.placement = "tbp", 
      caption.placement = "top") 
@ 
+0

Eh, başlık yazdırılıyor, ancak tablo altında bir açıklama eklemek isterseniz, işe yaramıyor. Bunu nasıl yapacağımı bilmiyorum. Örneğin, şunu eklemek istiyorum: "Bu tabloda, lineer bir model kullandım, blablabla ...". Kısaca, tabloya bağlı başlık, tablo ve açıklama olacaktır. Bu arada, hızlı yanıtınız için teşekkür ederim! –

cevap

8
ben xtable bir hızlı seçenek tablosunun alt metin eklemek için (yani bir tane olmadığı anlamına gelmez) bu yüzden here gelen ve linkinden bir fikir kullanmış göremiyordu

sorunuzda. Eklenecek metnin genişliğini belirtmek için gereken büyük dezavantajı ile oldukça kaba bir çözümdür (tablonun genişliğine eşit) - eğer çok uzun yaparsanız son sütunu uzatır.).

enter image description here

\documentclass{article} 

\usepackage{array} 
\newcolumntype{L}[1]{>{\raggedright\arraybackslash}m{#1}} 

\begin{document} 
\SweaveOpts{concordance=TRUE} 

<<yoman,echo=FALSE,results=tex>>= 
library(xtable) 

mod <- lm(mpg ~ wt, data=mtcars) #my linear model 

print(xtable(mod, 
      caption = "Estimates of linear model for father Muro CB ", 
      #label = "tab:one", 
      digits = c(0,2, 2, 2,3)), 
      table.placement = "h!", 
      caption.placement = "top", 
      add.to.row = list(list(2), 
      "\\hline \\multicolumn{5}{L{8.5cm}}{\\textbf{Note: } 
      This is a description, blah, blah, blah, blah, blah, blah, 
      blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, 
      blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, 
      blah, blah, blah, blah, blah, blah} \\\\")) 

@ 

\end{document} 

Orada Bunu gerçekleştirmek için lateks birçok alternatifi vardır ama başlamak olabilir varsayalım.

sözlerinden

: Ben html çıktısı çalıştı ve işe yaramadı. Düşüncesi olan var mı?

yerine html tablo fonksiyonlarını kullanmak print.table arasında add.to.row argüman lateks komutunu multicolumn değiştirebilir. (Rmarkdown'un html çıktısını kullanarak)

```{r,echo=FALSE, results='asis'} 
library(xtable) 

mod <- lm(mpg ~ wt, data=mtcars) #my linear model 

print(xtable(mod, 
      caption = "Estimates of linear model for father Muro CB ", 
      digits = c(0,2, 2, 2,3)), 
      type="html", 
      caption.placement = "top", 
      add.to.row = list(list(2), 
      '<tr><td colspan="5"><b>Note: </b> 
      This is a description, blah, blah, blah, blah, blah, blah, 
      blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, 
      blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, 
      blah, blah, blah, blah, blah, blah</td></tr>')) 

``` 
+0

Çok teşekkürler! İşe yarıyor. Eğer biliyorsan, neden sonunda yeni bir çizgi yaratıyor? Onu kaldırmak mümkün mü? Bu bir tasarım amacı! –

+0

Rica ederim. Metnin altındaki yatay çizgi mi (\ hline)? Öyleyse, kaldırmak istediğiniz satırları belirtin; 'hline.after' ifadesini kullanmak istediğiniz [hline.after = c (-1, 0))]] – user20650

+0

Wow !! İstediğim şey bu. Sen harikasın! –