xtable + knitr设置列宽html

时间:2013-11-20 16:57:21

标签: html knitr xtable column-width

如何使用knitr包在代码块的xtable(Rmd)输出中设置各列的列宽?

MWE

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

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

让我们说我想制作#1 - 2英寸宽,列#2 - 3英寸宽。

我在这里没有和xtable结婚,但是不知道任何其他可以做到这一点的html表格包。

1 个答案:

答案 0 :(得分:1)

您可以更改xtable使用的css来格式化表格并更改列宽。但它不允许更改单个列。

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

以下示例:

将样式表(此处名为custom.css)添加到与markdown文件相同的文件夹中。

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函数以获得更大的灵活性。