Ordinato che qualcun altro abbia pubblicato una taglia sulla mia vecchia domanda. In ogni caso, se è disponibile, la mia soluzione è stata una funzione di generatore di homebrew html
table_label <- function(tbl) {
# table dimensions
rows <- dim(tbl)[1]
cols <- dim(tbl)[2]
# get started
html_out <- '<table>\n'
# first row: label only
blank_cell <- '<td> </td>'
html_out <-
paste0(html_out,
'\t<tr>',
blank_cell,
'<td>', names(dimnames(tbl))[2], '</td>', # column label
rep(blank_cell, cols-2),
'</tr>\n')
# second row:
html_out <-
paste0(html_out,
'\t<tr>',
# label...
'<td>', names(dimnames(tbl))[1], '</td>',
# ...and headers
paste0('<td>', dimnames(tbl)[[2]], '</td>', collapse=''),
'</tr>\n')
# subsequent rows
for (i in 1:rows) {
html_out <-
paste0(html_out,
'\t<tr>',
# header...
'<td>', dimnames(tbl)[[1]][i], '</td>',
# ...and values
paste0('<td>', tbl[i,], '</td>', collapse=''),
'</tr>\n')
}
# last row
html_out <- paste0(html_out, '</table>')
return(html_out)
}
Ora questo Markdown doc:
Produce table
```{r}
set.seed(123)
some_data <-
data.frame(a=sample(c('up','down'), 10, replace=T),
b=sample(c('big','small', 'medium'), 10, replace=T))
tbl <- table(some_data)
```
Now display
```{r, results='asis'}
cat(table_label(tbl))
```
produce i risultati che avevo voluto:
Il l'html generato è in qualche modo leggibile anche:
<table>
<tr><td> </td><td>b</td><td> </td></tr>
<tr><td>a</td><td>big</td><td>medium</td><td>small</td></tr>
<tr><td>down</td><td>4</td><td>0</td><td>2</td></tr>
<tr><td>up</td><td>0</td><td>4</td><td>0</td></tr>
</table>
si può vedere se il pacchetto printr sembra interessante per voi: http://yihui.name/printr/ –