LaTeXは嫌いでもLaTeXで作られる表が好きな人は多いですよね。
HTMLの表はCSSでデコってもスベってる感が・・・、という人向けです。
シンプルでまあいいかも。
head(iris)
## Sepal.Length Sepal.Width Petal.Length Petal.Width Species
## 1 5.1 3.5 1.4 0.2 setosa
## 2 4.9 3.0 1.4 0.2 setosa
## 3 4.7 3.2 1.3 0.2 setosa
## 4 4.6 3.1 1.5 0.2 setosa
## 5 5.0 3.6 1.4 0.2 setosa
## 6 5.4 3.9 1.7 0.4 setosa
monoフォント以外でもなんとかなります。
kable(head(iris))
| Sepal.Length | Sepal.Width | Petal.Length | Petal.Width | Species |
|---|---|---|---|---|
| 5.1 | 3.5 | 1.4 | 0.2 | setosa |
| 4.9 | 3.0 | 1.4 | 0.2 | setosa |
| 4.7 | 3.2 | 1.3 | 0.2 | setosa |
| 4.6 | 3.1 | 1.5 | 0.2 | setosa |
| 5.0 | 3.6 | 1.4 | 0.2 | setosa |
| 5.4 | 3.9 | 1.7 | 0.4 | setosa |
並べ替えとかできるので、これはこれでありかと思います。
library(rCharts)
tbl <- dTable(head(iris))
tbl$show("inline", chartId = "tbl01", include_assets = TRUE, cdn = TRUE)
(画像じゃないよ)
magic_table(head(iris))
\[ \begin{array}{rrrrrl} \hline & Sepal.Length & Sepal.Width & Petal.Length & Petal.Width & Species \\ \hline 1 & 5.10 & 3.50 & 1.40 & 0.20 & setosa \\ 2 & 4.90 & 3.00 & 1.40 & 0.20 & setosa \\ 3 & 4.70 & 3.20 & 1.30 & 0.20 & setosa \\ 4 & 4.60 & 3.10 & 1.50 & 0.20 & setosa \\ 5 & 5.00 & 3.60 & 1.40 & 0.20 & setosa \\ 6 & 5.40 & 3.90 & 1.70 & 0.40 & setosa \\ \hline \end{array} \]
magic_table(aov(yield ~ block + N*P*K, npk))
\[ \begin{array}{lrrrrr} \hline & Df & Sum Sq & Mean Sq & F value & Pr(>F) \\ \hline block & 5 & 343.29 & 68.66 & 4.45 & 0.0159 \\ N & 1 & 189.28 & 189.28 & 12.26 & 0.0044 \\ P & 1 & 8.40 & 8.40 & 0.54 & 0.4749 \\ K & 1 & 95.20 & 95.20 & 6.17 & 0.0288 \\ N:P & 1 & 21.28 & 21.28 & 1.38 & 0.2632 \\ N:K & 1 & 33.13 & 33.13 & 2.15 & 0.1686 \\ P:K & 1 & 0.48 & 0.48 & 0.03 & 0.8628 \\ Residuals & 12 & 185.29 & 15.44 & & \\ \hline \end{array} \]
mdat <- matrix(c(1,2,3, 11,12,13), nrow = 2, ncol = 3, byrow = TRUE,
dimnames = list(c("row1", "row2"),
c("C.1", "C.2", "C.3")))
magic_table(mdat)
\[ \begin{array}{rrrr} \hline & C.1 & C.2 & C.3 \\ \hline row1 & 1.00 & 2.00 & 3.00 \\ row2 & 11.00 & 12.00 & 13.00 \\ \hline \end{array} \]
magic_table(glm(Postwt ~ Prewt + Treat + offset(Prewt),
family = gaussian, data = MASS::anorexia))
\[ \begin{array}{rrrrr} \hline & Estimate & Std. Error & t value & Pr(>|t|) \\ \hline (Intercept) & 49.7711 & 13.3910 & 3.72 & 0.0004 \\ Prewt & -0.5655 & 0.1612 & -3.51 & 0.0008 \\ TreatCont & -4.0971 & 1.8935 & -2.16 & 0.0340 \\ TreatFT & 4.5631 & 2.1333 & 2.14 & 0.0360 \\ \hline \end{array} \]
magic_tableという関数、ワンライナーです。
library(xtable)
magic_table <- function(x)
cat(paste("\\[", print(xtable(x), floating=FALSE, tabular.environment="array", print.results=FALSE, comment=FALSE, sanitize.colnames.function=I), "\\]", sep="\n"))
「テーブルの出力なんとかならんの?生テーブル出されても困るんだけど?」 https://github.com/yihui/knitr/issues/484 というのが発展して、 MathJaxに渡しちゃえばいんじゃね?っていうところまで行った結果です。 http://rpubs.com/Thell/xtable Thanks @Thell!!
Enjoy LaTeX!!