R Tools for Visual Studioを使ってみよう特集:RTVSで始めるRプログラミング(3/3 ページ)

» 2016年03月25日 05時00分 公開
[かわさきしんじInsider.NET編集部]
前のページへ 1|2|3       

関数を書いてみる

 関数はスクリプトファイル(この場合は[script.R]タブに表示されているファイル)に記述してもよいし、[R Interactive]ウィンドウで直接定義してもよい。ここでは取りあえず、[R Interactive]ウィンドウで定義する。ここではf2c関数としよう。

> f2c <- function(x) {
+     (x - 32) / 1.8
+ }


カ氏からセ氏に変換する関数を定義

 ご覧の通り、R言語では関数もオブジェクトであり、「<-」演算子を用いて変数に代入する形で定義する。return関数で明示的に戻り値を指定しない限りは、最後に実行された式の値が戻り値となる。このため、関数本体である計算式の結果がf2c関数の戻り値となる。カ氏からセ氏への変換は「(カ氏温度−32)÷1.8」で求められるので、このような内容になっている。

 以下に実行結果を示す。

> f2c(50)
[1] 10


f2c関数の呼び出し結果
カ氏50度はセ氏10度。

 こんな関数を作っても、大量のデータを保持しているtemp変数には使えないと思うかもしれないが、そうでもない。実際に試してみると次のようになる。

> f2c(temp)
Time Series:
Start = 1912
End = 1971
Frequency = 1
[1]  9.944444 11.277778  9.666667 10.611111  9.666667  8.833333  9.888889
[8] 10.500000  9.611111 11.055556 10.444444  9.777778  9.611111 10.333333
…… 省略 ……


引数にtemp変数を指定してf2c関数を呼び出す

 全ての要素について関数が適用されていることが分かるはずだ。このようにR言語では多要素で構成されるオブジェクトについても関数が直感的に適用できる。

スクリプトファイルに関数を書いてみる

 再利用性が高い、あるいは何度も書き直してみるような場合には、[R Interactive]ウィンドウで関数を定義するよりもスクリプトファイルに記述をした方がよいだろう。これには単にスクリプトファイルにその内容を記述するだけだ。記述した関数を[R Interactive]ウィンドウで使用するには、スクリプトを記述したタブでどこかを右クリックしてコンテキストメニューから[Source R Script]を選択する。

スクリプトファイルに記述したf2c関数を[R Interactive]ウィンドウで使えるようにする スクリプトファイルに記述したf2c関数を[R Interactive]ウィンドウで使えるようにする

 これにより、スクリプトファイルの内容が保存されるとともに[R Interactive]ウィンドウには例えば次のような行が挿入・実行され、関数を利用できるようになる。

> source("スクリプトファイルのパス\\script.R")


source関数が呼び出され、スクリプトファイルで定義した関数を利用できるようになる

 次にこのデータのグラフを描画してみる。

グラフを描画する

 グラフの描画にはplot関数を使用する。プロンプトに「plot(temp)」と入力した結果を以下に示す。

60年間の平均気温をグラフ化 60年間の平均気温をグラフ化

 このデータは単純なもの(タイムスパンと1年ごとの平均気温のみで構成される)だったので、関数呼び出し一発できれいなグラフが描けたが、実際にはX軸にはどの要素を指定するか、Y軸にはどの要素を指定するかをきちんと決定する必要があるだろう。また、ここでは触れないが、データを解析し、その結果から何らかのグラフをさらにこの上に描画するといったことも可能だ。

 なお、ツールバーからは描画したグラフをファイルに保存したり、クリップボードにコピーしたりできる。

[Variable Explorer]ウィンドウ

 RTVSには[Variable Explorer]ウィンドウがある。これを表示するにはメニューバーから[R Tools]−[Windows]−[Variable Explorer]を選択する。

[Variable Explorer]ウィンドウ [Variable Explorer]ウィンドウ

 このウィンドウには[R Interactive]ウィンドウで定義されている変数の値が表示される。上の画面では定義したf2c関数と、R言語が標準で提供するデータ「nhtemp」を代入した変数tempの値が表示されている。

 変数tempが参照しているデータは単純なものなので、このウィンドウの良さがよく分からない。そこで、[R Interactive]ウィンドウで別のデータを変数に代入してみよう。

 ここではプロンプトにまず「rm(temp)」を、次に「cars <- mtcars」を入力したものとする。rm関数は引数に指定した変数を削除する関数だ。これにより、変数tempが削除され、[Variable Explorer]ウィンドウからもこの変数が削除される。「mtcars」はアメリカの雑誌『Motor Trend』で行われたロードテストの結果を抽出したデータを含んだものだ。

 [Variable Explorer]ウィンドウは次のようになる。

mtcarsを変数carsに代入した後の[Variable Explorer]ウィンドウ mtcarsを変数carsに代入した後の[Variable Explorer]ウィンドウ

 [Value]列に虫眼鏡アイコンがあることに注意されたい。これをクリックすると、このデータをグリッド状に整理したものを表示してくれる。[Variable Explorer]では分かりにくいデータが視覚的に分かりやすいものになる。

[Variable Explorer]ウィンドウの内容をドリルダウン表示したもの [Variable Explorer]ウィンドウの内容をドリルダウン表示したもの

[R History]ウィンドウ

 もう1つ、RTVSには[R History]ウィンドウも用意されている。このウィンドウにはこれまでに[R Interactive]ウィンドウで実行したものが履歴として保存されている。上述のコラムでも述べたように[R Interactive]ウィンドウではカーソルキーやマウスを使用して、以前に実行/評価した関数や式を選択/編集して再実行/再評価できるが、履歴が増えてきたときにはこのウィンドウが役に立つだろう。

[R History]ウィンドウ [R History]ウィンドウ


 今回はRTVSのインストール、RTVSが提供する各種のウィンドウに触りながらR言語の初歩の初歩について見た。次回はR言語が提供するデータを解析しながら、R言語での統計解析の初歩について見ていこう。

「特集:RTVSで始めるRプログラミング」のインデックス

特集:RTVSで始めるRプログラミング

前のページへ 1|2|3       

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。