knitrで複数頁に渡る表を作成する必要があったので、メモです。
と言っても、longtable をセットするだけなのですが。
仮に、longtable.Rというファイルがあったとします。データはTIMSS 2011の日本のデータ(asgjpnm5.sav)を使うことにします。
#' \documentclass[a4j, uplatex]{jsarticle} #' \usepackage{longtable} #' \title{複数頁に渡る表をつくる!} #' \author{さくら} #' \begin{document} #' \maketitle #+ setup, echo=F, include=F opts_knit$set(latex.options.graphicx="dvipdfmx") opts_knit$set(latex.options.color="dvipdfmx") #+ data, echo=F, include=F, warning=F library(foreign) library(psych) library(xtable) jp <- read.spss("asgjpnm5.sav", to.data.frame=T, use.missing=T) db <- describe(jp, skew=F) db$vars <- NULL; db$trimmed <- NULL; db$median <- NULL db$mad <- NULL; db$se <- NULL; db$range <- NULL tb <- xtable(db, caption="複数頁に渡る表") #+ results="asis", echo=F print(tb, tabular.environment="longtable", floating=FALSE, caption.placement="top") #' \end{document}
このファイルに対して、R上で次のように実行すれば、texファイルが生成されます。
library(knitr) spin("longtable.R", knit=F, format="Rnw") knit("longtable.Rnw")
ちょっと面倒なのですが、私はuplatexを使用しているので、一発でpdf化はできず、Rnwファイルを経由する必要があります。
表もあまりキレイじゃない気がします。もうちょっといろいろ何とかしたいかも・・・。
ちなみに、参考にしたのは、下記の本です。