日々の記録簿

日々のできごとの記録

日記

knitrで複数頁に渡る表を作成する

投稿日:

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ファイルを経由する必要があります。

表もあまりキレイじゃない気がします。もうちょっといろいろ何とかしたいかも・・・。

ちなみに、参考にしたのは、下記の本です。

スポンサーリンク

スポンサーリンク

-日記

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

Nvim-Rの導入方法

vimからRを使う、vim-r-pluginが、Nvim-Rに変わりました。 Neovimを使う前提ですが、tmuxを使わなくてもいいなど、いろいろ設定が楽になったと思います。 インストール まず、n …

iptablesからnftablesに変更した!

タイトルのまんまですが、ファイアウォールをiptablesからnftablesに変更しました。 きっかけは、sshへの不正アクセス。理由はよくわからないのですが、最近、iptablesをすり抜けてss …

Lenovoのドッキングステーションは何台のディスプレイに出力できるのか?

Lenovoのドッキングステーションを使って、マルチディスプレイ環境を構築するときに気になるのが、同時に何台のディスプレイに出力できるのかという点。2020年現在の情報は、こちらのLenovoのサイト …

ThinkPad X250 のトラックポイントが使いにくい!

X250を1ヶ月ほど使っていますが、最近いまいち旧機種に比べて使いにくいと思うようになりました。 で、気づいたのが、X250はトラックポイントの反応が鈍いということ。旧機種に比べて、操作に力が要ります …

Rを勉強するためにいろいろ寄り道をしていた

Rをもっと勉強したいなと思って、『R言語徹底解説』を買ってみました。・・・が、ちんぷんかんぷん。クラスとか、オブジェクト指向とか、遅延評価とか、さっぱりわかりません。 これはいかんと思い、ここ2ヶ月ほ …