Печать хороших кросс-таблиц в книжке
Я хочу напечатать красивые перекрестные ссылки, либо в pdf файле, либо в html файле, из RStudio, используя R, Markdown и knitr. Я подозреваю, что мне не хватает чего-то действительно очевидного, потому что я не могу поверить, что это так сложно. Я делаю cross-tabs с помощью xtabs или ftable.
То, что я хочу, это что-то вроде хорошо напечатанной версии вывода консоли R.
> x
Col
Row A B C
D 15 9 7
E 13 14 9
F 8 8 17
> f
Col A B C
Row
D 15 9 7
E 13 14 9
F 8 8 17
Я пробовал несколько различных решений, ни один из которых действительно не работает, и они показаны в прилагаемом файле .Rmd. (Я пробовал выходы pdf и html.)
---
title: "trial"
author: "Anthony Staines"
date: "26/08/2014"
output: html_document
---
# Make the data
```{r, echo=TRUE,results='asis',message=FALSE}
library(knitr)
library(memisc)
library(xtable)
library(stargazer)
library(texreg)
set.seed(893)
Col <- sample(c('A','B','C'),100,replace=TRUE)
Row <- sample(c('D','E','F'),100,replace=TRUE)
```
```{r, echo=TRUE,results='asis',message=FALSE}
x <- xtabs(~Row+Col)
x
kable(x)
kable(x,format='html')
kable(x,format='html',output = TRUE)
xx <- xtable(format(x))
print(xx,type='html')
stargazer(x)
f <-ftable(Row,Col)
f
kable(f,format='html')
kable(f,format='html',output = TRUE)
xf <- xtable(format(f))
print(xf,type='html')
stargazer(f)
```
kable подходит ближе всего, но, похоже, не поддерживает имена строк или столбцов, оба из которых необходимы для меня: -
| | A| B| C|
|:--|--:|--:|--:|
|D | 15| 9| 7|
|E | 13| 14| 9|
|F | 8| 8| 17|
Помогите оценить, и мои извинения, если это действительно глупый вопрос с очевидным и хорошо известным ответом!
Энтони Стейнс
Ответы
Ответ 1
Я предлагаю вам использовать stargazer
следующим образом:
- Используйте
quote=FALSE
- Обязательно укажите
type="html"
Попробуйте следующее:
# stargazer
```{r, echo=TRUE, results='asis'}
stargazer(format(f, quote=FALSE, justify="right"), type="html")
```
![enter image description here]()
Ответ 2
Альтернативой kable
является pander
из пакета с тем же именем, что обеспечивает простой способ создания таблиц разметки с набором параметров (например, style
) и общего метода S3:
> pander(x)
-------------------
A B C
------- --- --- ---
**D** 15 9 7
**E** 13 14 9
**F** 8 8 17
-------------------
> pander(f)
----- ----- --- --- ---
"Col" "A" "B" "C"
"Row"
"D" 15 9 7
"E" 13 14 9
"F" 8 8 17
----- ----- --- --- ---
Если вы хотите сгенерировать старые таблицы rmarkdown
-style pipe, добавьте параметр stlye='rmarkdown'
, хотя AFAIK Pandoc также является новым стандартом, который поддерживает вышеупомянутую многострочную таблицу.
Ответ 3
Дальнейшее копание привело меня к этому вопросу.
Ответ смущающе понятен - 'tables' package!
Я думал, что должен быть более простой способ сделать это. Большое спасибо, тем не менее, Андри и Дароциг за их полезные ответы.