knitr の使い方

knitrとは

knitr は Rstudio 上で使うことができる R のパッケージの一つで, HTMLファイルなどの資料を簡単に作成することができます. ここでは HTMLファイルの作り方を説明します.

knitr のインストール

Rstudio 上で以下を実行します.

install.packages("knitr") 

他のパッケージとは異なり, インストールさえしてしまえば, 使用時に毎回 library(knitr) などとする必要はありません.

使い方

Rstudio のメニューから File New File R Markdown を選ぶ (自分は mac を使っているため, Windows で同じかどうかは不明).

出てきたファイルを適宜加筆修正後, 上部の「knit HTML」を押し, .Rmd の拡張子で適当なフォルダに保存します. すると, 同じフォルダに .html の拡張子のファイルができています. これが完成物. 内容を変更したら再度「knit HTML」を押せば更新する (Command+Shift+h としても同様).

参考までに, 1次元量的データの要約を作るための .Rmd ファイルの中身は以下のようになっています.


1次元量的データの要約
========================================================

次のようなデータから, 1次元の量的データをグラフや数値にまとめてみよう.

まずは, オールドフェイスフル(間欠泉)の噴出時間についてグラフでまとめてみよう.
Rに用意されているオールドフェイスフルデータを読み出す.

```{r}
data(faithful)
```

faithful とタイプするとデータが見れるが, ここでは長くなるので割愛.
データ内には eruptions, waiting という2つの変数があり,ここでは waiting を扱う.

### ドットプロット
```{r fig.width=7, fig.height=4}
stripchart(faithful$waiting, method="stack", offset=.5, at=0, pch=19, cex=1, col="red", main="old faithful data", xlab="waiting time (min)")
```

この stripchart は, データによってはオプションの offset などを変更する必要があるかもしれない.

### 幹葉図
```{r}
stem(faithful$waiting)
```

5刻みになった.
10刻みにしたいならば scale を半分にしてみよう.

```{r}
stem(faithful$waiting, scale=0.5)
```

### ヒストグラム
ヒストグラムは hist 関数で描くことができる.

```{r fig.width=7, fig.height=4}
hist(faithful$waiting, right=FALSE, main="old faithful data", xlab="waiting time (min)")
```

R では right=FALSE を指定すると「○○以上△△未満」と右端を含まない階級にできる.

階級の境界は breaks で指定できる. 

```{r fig.width=7, fig.height=4}
hist(faithful$waiting, breaks=c(40,60,80,100), right=FALSE, main="old faithful data", xlab="waiting time (min)")
```

縦軸を密度にするには freq=FALSE とすればよい.

```{r fig.width=7, fig.height=4}
hist(faithful$waiting, right=FALSE, freq=FALSE)
```

### 箱ひげ図
箱ひげ図は boxplot で描ける. 
```{r fig.width=7, fig.height=4}
boxplot(faithful$waiting, horizontal=TRUE)
```

horizontal=TRUE で横向きにしている.

今度は iris データを読み込んで, 品種ごとに Petal Length の箱ひげ図を描いてみる.
```{r fig.width=7, fig.height=6}
data(iris)
boxplot(Petal.Length~Species, data=iris, horizontal=TRUE)
```

外れ値を描かないタイプの箱ひげ図を描くときは以下のようにする.
```{r fig.width=7, fig.height=6}
data(iris)
boxplot(Petal.Length~Species, data=iris, horizontal=TRUE, range=0)
```

### 数値による要約
平均, 中央値は次のように計算できる.
```{r}
mean(faithful$waiting)
median(faithful$waiting)
```

五数要約は以下の通り.
```{r}
summary(faithful$waiting)
```

分散と標準偏差は次のように計算できる. ただしいずれもn-1で割ったものが出力される.
```{r}
var(faithful$waiting)
sd(faithful$waiting)
```

### その他
データを標準化したい場合は scale 関数を用いる.ここでは全部表示すると長いので最初から20個のみ表示.
```{r}
scale(faithful$waiting)[1:20]
```

ごく簡単なコードの説明