2013-11-20 20 views
5

Come è possibile impostare le larghezze delle colonne di singole colonne nell'output knitr (Rmd) di un blocco di codice utilizzando il pacchetto xtable?xtable + knitr set column width html

MWE

```{r setup, include=FALSE} 
library(xtable) 
``` 

```{r, results="asis", echo=FALSE} 
print(xtable(mtcars[1:2, 1:2]), type="html", include.rownames=FALSE) 
``` 

Diciamo che voglio fare column_ # 1 - 2 pollici di larghezza e column_ # 2 - 3 pollici di larghezza.

Non sono sposato con xtable ma non conosco altri pacchetti di tabelle html in grado di farlo.

risposta

1

È possibile modificare il css utilizzato da xtable per formattare la tabella e modificare la larghezza delle colonne. Non permette però di cambiare le singole colonne.

Vedi http://nsaunders.wordpress.com/2012/08/27/custom-css-for-html-generated-using-rstudio/

Un esempio di seguito:

Aggiungi un foglio di stile (qui chiamato custom.css) nella stessa cartella del file Markdown.

table { 
    max-width: 95%; 
    border: 1px solid #ccc; 
} 

th { 
    background-color: #000000; 
    color: #ffffff; 
    width: 100px; 
} 

td { 
    background-color: #dcdcdc; 
    width: 100px; 
} 

e impostare le opzioni per utilizzare questo foglio di stile

```{r setup, include=FALSE} 
library(xtable) 
options(rstudio.markdownToHTML = 
     function(inputFile, outputFile) {  
     require(markdown) 
     markdownToHTML(inputFile, outputFile, stylesheet='custom.css') 
     } 
) 

``` 

```{r, results="asis", echo=FALSE} 
print(xtable(mtcars[1:2, 1:2]), type="html", include.rownames=FALSE) 
``` 

Potrebbe essere possibile hackerare la funzione print.xtable per ottenere una maggiore flessibilità.