ぢฟࡋ
2.7.3 R から直接 L A TEX ファイルを作成する
Sweave というのを使うと、R から直接 PDF の報告書を出力することができます。Sweaveの方が、
RMarkdownよりも細かい設定ができます。ただし、そのためにはLATEXの知識が必要になります。
LATEXのインストール
ここではLATEXには深入りしません。最小限の情報だけ提供しておきます。インストールはTeX Liveと いうのを使えば比較的簡単かと思います。Windowsの場合、以下を参照していください。
TeX Wikiのインストール解説
RStudioの設定
テキストエディタなどで、以下を記述して、.Rprofileという名前で、作業フォルダに保存しておいてくだ さい。
Sys.setenv(RSTUDIO_PDFLATEX="..../texlive/2015/bin/win32/ptex2pdf.exe")
ただし、..../texlive/2015の部分は、自分がTeX Liveをインストールしたフォルダに応じて書き換え
てください。
Rnwファイルの作成
RStudioのファイルの新規作成の際、「R Sweave」を選び、以下の記述をしてください。他のテキストエ
ディタでも構いません。
\documentclass[uplatex]{jsarticle}
\usepackage[dvipdfmx]{graphicx}
\usepackage[T1]{fontenc}
\usepackage[dvipdfmx]{xcolor}
\usepackage{ascmac}
\begin{document}
\section*{調査項目と単純集計結果}
<<echo=FALSE>>=
setwd("c:/Users/hogehoge/Documents") d01r<-read.csv("dset_r.csv")
d01q<-read.csv("dset_q.csv",as.is=T) d01a<-read.csv("dset_a.csv")
@
<<echo=FALSE>>=
source("simple01.R",encoding="utf-8")
@
\begin{itembox}[l]{問1}
あなたの実家はどこですか。次のいずれか1つに○印をつけてください。ただし、転居が多い方はこれまで 最も長く住んでいた方をお答えください。
\end{itembox}
\begin{enumerate}
\item 京都府
\item 大阪府
\item 兵庫県
\item 滋賀県
\item 奈良県
\end{enumerate}
\setkeys{Gin}{width=0.6\textwidth}
<<fig=TRUE,height=3>>=
showtext.begin()
fgsimple(dr=d01r,dq=d01q,da=d01a,qNo=1)
2.7 報告書を作成する 91 showtext.end()
@
\begin{itembox}[l]{問2}
あなたの実家またはあなたの下宿にはたこ焼き器はありますか。次のいずれか 1 つに○印を つけてくださ い。
\end{itembox}
\begin{enumerate}
\item 有る
\item 無い
\end{enumerate}
<<fig=TRUE,height=2>>=
showtext.begin()
fgsimple(dr=d01r,dq=d01q,da=d01a,qNo=2) showtext.end()
@
\begin{itembox}[l]{問3}
もしあなたが現金で 1 万円札を拾ったら、あなたはそれを交番に届けますか?次のいずれか 1 つに○印を つけてください。
\end{itembox}
\begin{enumerate}
\item 届けない
\item 届ける
\end{enumerate}
<<fig=TRUE,height=2>>=
showtext.begin()
fgsimple(dr=d01r,dq=d01q,da=d01a,qNo=3) showtext.end()
@
\begin{itembox}[l]{問4}
現金でお金が落ちていたとき、いくら以上ならあなたはそれを交番に届けますか?
\end{itembox}
( )円以上\\
<<fig=TRUE,height=3>>=
showtext.begin()
fgsimple(dr=d01r,dq=d01q,da=d01a,qNo=4) showtext.end()
@
\begin{itembox}[l]{問5}
あなたの性格についてお聞きします。以下の 1.~4. についてあてはまるもの全てに○印をつ けてくださ い。
\end{itembox}
\begin{enumerate}
\item 友達とご飯やさんに入って、メニューを決めるのが最後になることが多い。
\item メニューを決めた後、「やっぱり別のにすればよかった」と後悔することが多い。
\item 友達と遊びに行くとき、どこに行くか自分できめずに、相手に決めさせることの方が多い。
\item ほんとうはイヤでも「どうしてもお願い」と言われると、つい「はい」と言ってしまい、自分でも
「そんなにいやじゃなかったかも」と思い込んでしまうことが多い。
\end{enumerate}
<<fig=TRUE,height=3>>=
showtext.begin()
fgsimple(dr=d01r,dq=d01q,da=d01a,qNo=5) showtext.end()
@
\end{document}
これを、smp report01.Rnwという名前で保存しましょう。エンコードはUTF-8です。
Rnwファイルをtexファイルに変換する
作成したsmp report01.Rnwファイルに書かれているRコマンドを実行し、結果を含めたtexファイルを 作成します。Rコンソールから、以下を実行します。
smp report01.texというファイルができてているはずです。
PDFファイルを作成する
次に、WindowsだったらCMDやWindows PowerShellなどのターミナルを起動し、カレントディレクト リを作業フォルダに移動しておきます。
> cd c:\Users\hogehoge\Documents
図2.17: ターミナルでのカレントディレクトリの変更
続いて、ターミナル上で以下のコマンドを実行します。
> ptex2pdf -u -l -ot "-kanji=utf8 -no-guess-input-enc -synctex=1" smp_report01.tex 以上でエラーが出ていなければ、次のようなPDFファイルができているはずです。なかなかすんなりうま くいくとは思いませんが、エラーメッセージに注意しながら、格闘してみてください。
2.7 報告書を作成する 93
ௐ߲ࠪͱ୯७ूܭ݁Ռ
✓̍ ✏
͋ͳͨͷ࣮ՈͲ͜Ͱ͔͢ɻ࣍ͷ͍ͣΕ͔1ͭʹ˓ҹΛ͚͍ͭͯͩ͘͞ɻͨͩ͠ɺసډ͕ଟ͍ํ͜Ε·
Ͱ࠷͘ॅΜͰ͍ͨํΛ͓͍͑ͩ͘͞ɻ
✒ ✑
1.ژ
2.େࡕ
3.ฌݿݝ 4.࣎լݝ 5.ಸྑݝ
✓̎ ✏
͋ͳͨͷ࣮Ո·ͨ͋ͳͨͷԼ॓ʹͨ͜ম͖ث͋Γ·͔͢ɻ࣍ͷ͍ͣΕ͔1ͭʹ˓ҹΛ ͚ͭͯͩ͘
✒͍͞ɻ ✑
1.༗Δ 2.ແ͍
✓̏ ✏
͋͠ͳ͕ͨݱۚͰ1ສԁࡳΛरͬͨΒɺ͋ͳͨͦΕΛަ൪ʹಧ͚·͔͢?࣍ͷ͍ͣΕ͔1ͭʹ˓ҹΛ
͚͍ͭͯͩ͘͞ɻ
✒ ✑
1.ಧ͚ͳ͍
1
図2.18: SweaveによるPDFの出力:Page1
2.ಧ͚Δ
✓̐ ✏
ݱۚͰ͓͕ۚམ͍ͪͯͨͱ͖ɺ͍͘ΒҎ্ͳΒ͋ͳͨͦΕΛަ൪ʹಧ͚·͔͢?
✒ ✑
ʢɹɹɹɹɹɹɹɹɹɹʣԁҎ্
✓̑ ✏
͋ͳͨͷੑ֨ʹ͍͓ͭͯฉ͖͠·͢ɻҎԼͷ1. 4. ʹ͍ͭͯ͋ͯ·Δͷશͯʹ˓ҹΛͭ ͚ͯͩ͘
✒͍͞ɻ ✑
1.༑ୡͱ͝൧͞ΜʹೖͬͯɺϝχϡʔΛܾΊΔͷ͕࠷ޙʹͳΔ͜ͱ͕ଟ͍ɻ 2.ϝχϡʔΛܾΊͨޙɺʮͬͺΓผͷʹ͢ΕΑ͔ͬͨʯͱޙչ͢Δ͜ͱ͕ଟ͍ɻ 3.༑ୡͱ༡ͼʹߦ͘ͱ͖ɺͲ͜ʹߦ͔ࣗ͘Ͱ͖Ίͣʹɺ૬खʹܾΊͤ͞Δ͜ͱͷํ͕ଟ͍ɻ 4.΄Μͱ͏ΠϠͰʮͲ͏͓ͯ͠ئ͍ʯͱݴΘΕΔͱɺ͍ͭʮ͍ʯͱݴͬͯ͠·͍ɺࣗͰʮͦ
Μͳʹ͍͡Όͳ͔͔ͬͨʯͱࢥ͍ࠐΜͰ͠·͏͜ͱ͕ଟ͍ɻ
2
図2.19: SweaveによるPDFの出力:Page2
95
第 3 章
クロス集計のグラフを描く
クロス集計のグラフは前々章で例としてやってみましたが、ここではそれを関数化して、報告書の作成がで きるまでやってみます。クロス集計の種類も以下の4種類です。
(a)単一回答×単一回答の帯グラフ (b)単一回答×単一回答の棒グラフ
(c)複数回答×単一回答の棒グラフ (d)数値項目×単一回答の棒グラフ 図3.1: 本章で描くグラフ