2015-10-27 11 views
8

Sto provando a formattare una tabella in R markdown (compilando in HTML) usando knitr::kable per essere il più piccolo possibile. Forse ridimensionando il testo, ad esempio. Comunque, su Google, ho capito come controllare questi singoli elementi, ma il tavolo ha le stesse dimensioni. Ho pensato che dovesse ridursi in quanto gli elementi richiedevano meno spazio, ma ciò non è accaduto.R knitr - kable table html formatting for small text

Quindi cos'altro devo impostare per rendere il tavolo più piccolo?

Ecco il codice:

--- 
title: "kable table formating" 
output: html_document 
--- 
<STYLE TYPE="text/css"> 
<!-- 
    td{ 
    font-family: Arial; 
    font-size: 4pt; 
    padding:0px; 
    cellpadding="0"; 
    cellspacing="0" 
    } 
    th { 
    font-family: Arial; 
    font-size: 4pt; 
    height: 20px; 
    font-weight: bold; 
    text-align: right; 
    background-color: #ccccff; 
    } 
    table { 
    border-spacing: 0px; 
    border-collapse: collapse; 
    } 
---> 
</STYLE> 

```{r echo=T} 
library(knitr,quietly=T) 

n <- 14 
m <- runif(n*n) 
dim(m) = c(n,n) 
df <- data.frame(m) 
kable(df,padding=0) 
``` 

E qui è l'uscita - ovviamente non ho bisogno di tutto ciò che gli spazi bianchi:

enter image description here

+0

fa [questo] (http://stackoverflow.com/questions/33319457/display-a-data-frame-come-table-in-r-markdown) help – rawr

+0

@rawr, invece di un file CSS separato, ha incluso il CSS nel suo file rmarkdown. ha qualcosa a che fare con il padding, ma con la larghezza. La mia ipotesi è che 'kable' sia inadempiente per una larghezza di tabella del 100% della larghezza della pagina. Non sono sicuro di come affrontarlo. – Benjamin

+0

Nevermind. si. Ti manca l'argomento 'format =" html "'. Non stai creando una tabella HTML, ma una tabella markdown, che non riconosce l'argomento padding. – Benjamin

risposta

10

Hai solo bisogno di aggiungere al vostro format="html"kable chiama e lo avrai Per impostazione predefinita, kable produce codice per un tavolo Markdown (confrontare i risultati di kable(df) e kable(df, format = "html")

```{r echo=T} 
library(knitr,quietly=T) 

n <- 14 
m <- runif(n*n) 
dim(m) = c(n,n) 
df <- data.frame(m) 
kable(df, format = "html", pad=0) 
``` 

che assomiglia a questo:

enter image description here

+0

Sì, è così. Grazie mille, non vedo come l'avrei trovato. –