0に立ち返ってRコードをSweave()で使ってみる

  • tex文書にRのコードを書けばよい
  • 2通りを使うことに(限定)する
    • Rを実行して、その結果・出力プロットを埋め込む
    • Rのコードを背景色・行番号付きで表示させる
  • 以下のファイルは"useRtest.Rnw"と言うファイル
\begin{document}
    • までに
\usepackage
    • が続くが、(もしかしたら不要なものも含めて)ひとまず気にしないことにする
    • Rの実行によってできるファイルをeps形式で出力させたいために\SweaveOpts{eps=TRUE}という1行がある点は注意
  • Rの書き方は以下の2つ
    • (1)実行して、プロット画像を埋め込む場合
<<fig=TRUE>>=
data<-runif(10)
sort(data)
plot(sort(data))
@
    • (2)Rのソースを背景色つき書式にするための部分
\begin{lstlisting}
data<-runif(10)
sort(data)
plot(sort(data))
\end{lstlisting}
      • この書式を決めているのが、以下の部分で、これに関する説明はこちらを参照
\lstset{%
 language={R},
 backgroundcolor={\color[gray]{.85}},%
 basicstyle={\small\tt },%
% basicstyle={\small },%
 identifierstyle={\small},%
 commentstyle={\small\itshape},%
 keywordstyle={\small\bfseries},%
 ndkeywordstyle={\small},%
 stringstyle={\small\ttfamily},
 frame={tb},
 breaklines=true,
 columns=[l]{fullflexible},%
 numbers=left,%
 xrightmargin=0zw,%
 xleftmargin=0zw,%
% xleftmargin=3zw,%
 numberstyle={\scriptsize},%
 stepnumber=1,
 numbersep=1zw,%
 lineskip=-0.5ex%
}

  • コマンドは
Sweave("useRtest.Rnw",encoding="SJIS")
  • ファイル全体は以下の通り
\documentclass{jsarticle}

\usepackage{amsmath,amssymb}
\usepackage{bm}
%\usepackage{graphicx}
\usepackage{ascmac}
\usepackage[dvips]{graphicx}
\usepackage{graphicx}
\usepackage{bigdelim,multirow}
\usepackage{amsmath,amsthm,amssymb,cases}
\usepackage{ascmac}
\usepackage{url}
\usepackage{eclbkbox}
\usepackage{wrapfig}
\usepackage{listings, jlisting}
\usepackage[dvips,usenames]{color}
\usepackage{makeidx}
\SweaveOpts{eps=TRUE}
\begin{document}
\lstset{%
 language={R},
 backgroundcolor={\color[gray]{.85}},%
 basicstyle={\small\tt },%
% basicstyle={\small },%
 identifierstyle={\small},%
 commentstyle={\small\itshape},%
 keywordstyle={\small\bfseries},%
 ndkeywordstyle={\small},%
 stringstyle={\small\ttfamily},
 frame={tb},
 breaklines=true,
 columns=[l]{fullflexible},%
 numbers=left,%
 xrightmargin=0zw,%
 xleftmargin=0zw,%
% xleftmargin=3zw,%
 numberstyle={\scriptsize},%
 stepnumber=1,
 numbersep=1zw,%
 lineskip=-0.5ex%
}

\section{Rを使ってみる}
Rの内側では日本語を使わない方が無難かも

<<fig=TRUE>>=
data<-runif(10)
sort(data)
plot(sort(data))
@


\begin{lstlisting}
data<-runif(10)
sort(data)
plot(sort(data))
\end{lstlisting}

\end{document}