2013-11-20 3 views
5

Как установить ширину столбцов отдельных столбцов в выводе knitr (Rmd) блока кода с помощью пакета 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) 
``` 

Позволяет сказать, что я хочу сделать column_ # 1 - 2 дюйма в ширину и column_ # 2 - 3 дюйма в ширину.

Я не состою в браке с xtable, но не знаю ни одного другого пакета html table out, который мог бы это сделать.

ответ

1

Вы можете изменить css, используемый xtable, для форматирования таблицы и изменения ширины столбцов. Тем не менее, это не позволяет изменять отдельные столбцы.

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

пример ниже:

Добавить таблицу стилей (здесь названный custom.css) в той же папке, что и файл уценки.

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

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

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

и установить параметры, чтобы использовать эту таблицу стилей

```{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) 
``` 

Можно было бы взломать print.xtable функцию, чтобы получить большую гибкость.