Rのはじめ方 2:使い方 入力と出力
Rの動作をおぼえるために、とにかく使ってみましょう。
基本的な動作はコマンドを入力して、結果を出し、保存する、この三つだけです。
入力する
Rを起動して出てくるウィンドウには「R Console」と名前がついています。このコンソールが、Rに命令文(コマンド)を入力する場所です。
Consoleのウィンドウをクリックして、下の赤い>横にカーソルを合わせます。
ここで「コマンドを書き、エンターを押す」ことでRに命令文をつたえます。
まず、下の二行をコピぺして、コンソールに入力しましょう。
data(iris) head(iris)
エンターを押すと、下記のように表示されます。
Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 5.1 3.5 1.4 0.2 setosa 2 4.9 3.0 1.4 0.2 setosa 3 4.7 3.2 1.3 0.2 setosa 4 4.6 3.1 1.5 0.2 setosa 5 5.0 3.6 1.4 0.2 setosa 6 5.4 3.9 1.7 0.4 setosa
- コンソールでは 命令文は赤い文字、 結果は青い文字で表示されます。
ここでは関数data() でRに内蔵されているデータセット「iris」を読み込み、その先頭部分を 関数head() を使って表示しました。
irisのデータセットはアヤメの三品種を比較した実際のデータです*1。
では次にグラフを作ってみましょう。
グラフの描画には関数plot()をつかいます。下記をコピペしてコンソールに入力します。
plot(iris$Species, iris$Sepal.Length)
円たーを押すと下図のようにグラフができます。
これはアヤメの三品種(Species)における、がく片の長さ(Sepal.Length)の平均とばらつきを示す箱ひげ図です。
関数 plot(データ1, データ2) は入力されたデータ1をx軸、データ2をy軸としてグラフを描きます。
ここでは、x軸に iris$Species 、y軸に iris$Sepal.Length を入力しています。
これはそれぞれ、表 iris の 列名 Species (品種名)、と 列名 Sepal.Length (がく片の長さ)を指定する書き方です。 表iris の 列Species を iris $ Species と書くわけです。$をつかったデータの指定は頻出しますので、慣れてください。
- $マーク
- データ表の中で名前の付けられた一列を指定する。表名$列名。
関数 plot(データ1,データ2) は入力されたデータ1をx軸、データ2をy軸としてグラフを描きます。
そのため、二つのデータの順番を入れ替えて入力すると、異なるグラフが描かれます。
plot(iris$Sepal.Length, iris$Species)
x軸にがく片の長さ(iris$Sepal.Length)、y軸にアヤメの品種(iris$Species)が入力されたグラフができました。
でも前回は箱ひげ図になったのに、今回は点でプロットされています。なぜでしょう?
これは iris$Species が品種名の入力された「文字型」のデータ*2
であるせいです。
関数plot()には「x軸に文字型が入力された場合は、それぞれの群ごとに箱ひげ図を描く」と定義されています。しかし、y軸方向では文字の扱いは定義されていません。
そのため、上のグラフを見ると、y軸には品種の違いに応じて一番目の品種、二番目の品種、三番目の品種、と適当な「数字」に変換されて軸が描かれています。
これではいったい何のグラフなのかわかりません。。。
正しいグラフを描くためには、関数plot(x軸データ、y軸データ)がもつ入力ルールにおぼえておかねばいけません。Rに習熟する労力の大半は、この コマンドの書き方を覚える ことです。
それぞれの関数がもつ入力ルールは help(関数名) を使えばオンライン上のマニュアルが参照できます。(ただし英語)
また、関数名+R で検索すれば、大抵のものは日本語での解説をみつけることができます。
グラフを出力する
グラフを保存してみましょう。方法は三つあります。
グラフの上で右クリック
メニューバーの「ファイル」から「別名で保存」を選択
統計解析結果を出力する
続いて、このデータで統計解析もしてみましょう。
がく片の長さが三品種の間で有意に違うかを、分散分析で検討します。
oneway.test(iris$Sepal.Length~iris$Species)
実行すると下記のようにF検定の結果が出力されます。
One-way analysis of means (not assuming equal variances) data: iris$Sepal.Length and iris$Species F = 138.9083, num df = 2.000, denom df = 92.211, p-value < 2.2e-16
P値が十分に小さい(0.001以下*4)ので、これらの三品種の間で、がく片の長さに有意に違いがある、といえます。
コンソールウィンドウの結果をマウスで選択してメモ帳やワードにコピペして保存しておきます。
では最後に、ここまで入力した命令文を保存しておきましょう。
history()
と入力すると、「R History」のウィンドウが開きます。
ここまで入力したコマンドが一覧されていると思います。
これをメニューバーの「ファイル」から「ファイルを保存」でテキストファイル(.txt)として保存します*5。
次に使うときは「ファイル」から「スクリプトを開く」でテキストファイルを開きます。これで、一度使ったコマンドを再利用することができます。
ここまでが、Rでやることの一連の流れです。
それぞれの関数の使い方をおぼえるのは厄介ですが、しかし、すべてを丸暗記する必要はありません。適宜、テキストファイルにメモを取っておけば便利です。
つぎはコマンドをメモしたテキストファイル、スクリプトの使い方を説明します。
初歩のTips
- コンソール入力場所で ↑キーを押す 一つ前に入力したコマンドを表示
- コンソール入力場所で 変数、関数名を途中まで入力してtabキーをおす 残りの入力が保管される。(複数ある場合は一覧が出る)
*1:irisの正体 (R Advent Calendar 2012 6日目) - どんな鳥も
*2:詳しくはyaginogogo.hatenablog.jp
*3:現在のフォルダを変更するには「ファイル」から現在のディレクトリを変更を選択。
*4:2.2e-16は指数表記で、2.2 × 10のマイナス16乗をしめす。とても小さい、くらいの認識
*5:打ち間違いの行はあとで消しましょう