• 検索結果がありません。

R から直接 L A TEX ファイルを作成する

ドキュメント内 : R 1. csv (xlsx CSV takoyaki.csv ) : (ページ 89-95)

ぢฟࡋ

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: 本章で描くグラフ

ドキュメント内 : R 1. csv (xlsx CSV takoyaki.csv ) : (ページ 89-95)