でグラフを描いてみよう
10’ 4/30

1.

五十君・林

R をいじる前に…
まず R をいじって解析をする前に、パソコンの設定を拡張子が表示されるように変えておきましょう。
Windows：コントロールパネル→フォルダオプション→表示→詳細設定の「登録されている拡張子は表示しない」のチェックを外す。
Mac OS X：Finder→環境設定…→詳細の「すべてのフゔイル拡張子を表示」をチェック。

2.

データファイルの作成
今回使用する EXCEL データ“r_data.xls”を開いてください。
フゔイル→別名で保存→CSV（カンマ区切り）形式を選択して保存。1
今回はマイドキュメントに Rlect というフォルダを作ってそこにデータフゔイルを保存しましょう。

3.

ディレクトリの変更
では、R を起動しましょう。
R を起動したら、データフゔイルの保存してあるフォルダ（今回は先ほど作成した Rlect）にディレクトリを変更しましょう。
フゔイル→ディレクトリの変更で、Rlect のフォルダを選択。2

4.

データファイルの読み込みディレクトリが変更できたら、R にデータを読み込んでみましょう。データフゔイルを読み込むにはread.table()3を使います。
> d <- read.table("r_data.csv", header=T, sep=",")#r_data.csv を読み込んで d に挿入。

>

4

これで読み込んだデータは"d"の中に入りました。
ちなみに、<-は矢印（←）
、header=T はデータの先頭行は列の名前として扱う、sep=","はデータのセルの区切りがカンマ（,）であることを表わしています。

1

EXCEL フゔイル（.xls、.xlsx）のままでは R に読み込めないので、CSV 形式（.csv）かテキスト形式（.txt）に変換する必要がある。

2

ディレクトリの変更は setwd()でも可能。例えば setwd(“C:/Users/ユーザ名/Documents/Rlect”)とか。今のディレクトリの場所を知りたければ、getwd()を使う。
3

csv フゔイルの場合、read.csv()でも読み込める。今回のでは read.csv(“r_data.csv”, header=T)で読み込める。txt フゔイルを読み込むときには、read.table(“フゔイル名”, header=T)で読み込める。
4

R でコマンドを打つ時、基本的にスペースはしかとされるので気にしなくていい。また#の後ろも読み込まれない。

1

5.

データの確認上で読み込んだデータが本当に読み込めたか確認してみましょう。
> d#データの表示。
IDsex

lengthbiomass

1

1

male

93.04457

43.61900

2

2

male

88.31661

44.50584

3

3 female

57.92402

55.98809

4455.11211

25.80724

male

以下略
str()5や summary()6で要約した形で情報を確認することもできます。7> str(d)#列ごとの情報を表示。

'data.frame':

200 obs. of

4 variables:$ ID: int 1 2 3 4 5 6 7 8 9 10 ...

$ sex: Factor w/ 2 levels "female","male": 2 2 1 2 2 2 1 1 2 1 ...

$ length : num 93 88.3 57.9 55.1 72.2 ...
$ biomass: num 43.6 44.5 56 25.8 36.5 ...
>> summary(d)#列ごとに要約したデータを表示。

IDMin.

: 1.00sex

lengthfemale:100

Min.

male

1st Qu.: 52.36

1st Qu.: 30.10

Median :100.50

Median : 61.51

Median : 42.71

Mean

Mean

Mean

1st Qu.: 50.75:100.50:100: 23.45

biomass: 61.95

Min.

: 12.82: 45.34

3rd Qu.:150.25

3rd Qu.: 69.96

3rd Qu.: 58.67

Max.

Max.

Max.

:200.00:105.83:101.45>

6.

データの整理今回のデータから、オス（male）のデータだけ取り出してみましょう。

5str()で表示される int は整数列 integer、num は実数列 number、Factor は文字列を表わす。

6summary()では、データが分位数の形や各データの個数で表示される。分位数での表示された場合、Min（最小値）、1st Qu.（第１四分位数）、Median（中央値）、Mean（平均）、3rd Qu.（第 3 四分位数）、Max（最大値）が表示される。
7

列の情報を得たいときは、次の関数で見ることができる。levels()：列のデータの種類、nlevels()：データの種類の数、table()：種類ごとのデータ数

また、平均、標準偏差を求めたいときはそれぞれ mean()、sd()を使う。

2

> male <- subset(d, d$sex=="male")#d の sex の列が"male"のものだけ取り出す。

> maleID sexlengthbiomass

1

1 male93.04457 43.61900

22 male88.31661 44.50584

4

4 male55.11211 25.80724

以下略> female<-subset(d, d$sex=="female")#同様にメスのデータも取り出して見ましょう。

>

7.

ヒストグラムの作成
オスのデータ（male）を用いて、バイオマスについてヒストグラムを描いてみましょう。8> hist(male$biomass)#male の biomass についてヒストグラムを作成。

>
すると R Graphic が開いて、下の図が描かれます。

05

1015

Frequency

202530

Histogram of male$biomass

1020304050

male$biomass8.

箱ひげ図の作成
箱ひげ図を描いて、性によるバイオマスの違いを比較してみましょう。
> boxplot(d$biomass~d$sex)#d の biomass の箱ひげ図を d の sex ごとに描く。

>

8

ここでは煩雑になるので軸名などの指定をしなかったが、hist()に関しても後述の plot()と同様に指定することができる。

3

この図から、メスのほうがバイオマスが大きい傾向にあることがわかります。またメスのほうが分布が広く、個体差が大きいこともわかります。

散布図の作成最後に、散布図を描いてみましょう。
性ごとに、樹幹長とバイオマスの関係を描いてみましょう。
> plot(female$length, female$biomass,#まずメスについて図を描く。x, y の順に入力。

+

pch=1,#点の形を指定。

+

col="red",+

xlim=c(0, 120),#x 軸の範囲。今回は、オスも入る範囲を指定。

+ylim=c(0, 120),#y 軸の範囲。

+xlab="length (cm)",#x 軸の名前。

+

ylab="biomass (g)",#y 軸の名前。

+)#色をきめる。

> points(male$length, male$biomass, pch=4, col="blue")#オスのデータを重ねる。

> #ついでに図の左上に凡例を描きましょう。
> legend("topleft", legend=c("female", "male"), pch=c(1, 4), col=c("red", "blue"))>120

右のような図は描けましたか？

femalemale

ちょっとだけ R に興味をもってもらえたら6040

今回の発表は以上です。

biomass (g)

80

100

オスもメスもきれいな正の相関が見られます。

嬉しいです。

20

あとは、先輩に聞くなり、ネットのサイト（R-Tips や RjpWiki など）を参考にするなり

09.

して頑張ってください。
0204060
length (cm)

480

100

120