R は統計用パッケージとして近年著しく発展,普及してきている.R は GNU ライセンスに従うフリーソフトウェアで,一般的なOSすべてで走る.また他の SPSS や SAS と異なって,R はプログラミング言語として開発されていて, 柔軟な処理が可能である. そのため,さまざまな専門領域のユーザーたちによって,分野に特化した ライブラリが開発されていることも大きな特徴である.
設定の理由: R はインタラクティブに使うことができて,そのベースで解説されている本も 多い.が,ちゃんと使おうと思ったら,スクリプト(インタプリタのシンプル なプログラムをこう呼ぶ)のソースをエディタで書いて実効すべきだ. そのためには,R のアイコンをクリックして起動するだけではなく, ターミナル上で動かせるようにする必要がある.Mac と Linux の場合には インストール時に環境変数の設定まで行われるが,Windows の場合にはそう ならないので,別途設定を行う.
[コントロールパネル]→[システムとセキュリティ]→[システム] →[詳細設定]→[環境変数の設定]でメニューを開き, 下の図のように
;C:\R\R-3.1.0\bin\x64を追加する.
Windows 以外のOSでは,
ターミナルから R --vanilla とタイプして次のような表示が出れば, インストールできている.英語が表示されるかもしれないが,それでも問題はない.
2014/14:39:13> R R version 3.1.0 (2014-04-10) -- "Spring Dance" Copyright (C) 2014 The R Foundation for Statistical Computing Platform: x86_64-apple-darwin13.1.0 (64-bit) R は、自由なソフトウェアであり、「完全に無保証」です. 一定の条件に従えば、自由にこれを再配布することができます. 配布条件の詳細に関しては、'license()' あるいは 'licence()' と入力してください. R は多くの貢献者による共同プロジェクトです. 詳しくは 'contributors()' と入力してください. また、R や R のパッケージを出版物で引用する際の形式については 'citation()' と入力してください. 'demo()' と入力すればデモをみることができます. 'help()' とすればオンラインヘルプが出ます. 'help.start()' で HTML ブラウザによるヘルプがみられます. 'q()' と入力すれば R を終了します.
これはRのインタラクティブモードで,Ruby の irb みたいなものと思えばいい.
R コンソールのアイコン (Mac) (Win) (Ubuntu) もインストール時に生成するが,これは使わないほうが後々のためにはよい。 Windows では次のように操作する。
Windows の場合には,ターミナルで Rgui & と打つと
次のような起動画面が現れる。
終了するには次のように q() と入力すればよい。 すると問い合わせが表示される(されないこともある).それには n で答えておこう. 意味がわかるようになったら y でもよい.
> q() Save workspace image? [y/n/c]: n
代入してオブジェクトを生成するには <-を使う. = でも使えることがあるが,場合によっては そうでないので,正しい方を使おう.
> x <- 125 > str <- "ABC"
代入されたオブジェクトを表示するには,単にその名前を タイプすればよい.
> x [1] 125 > str [1] "ABC"
次のようにして複数のデータを結合できる.(オブジェクトの表示は特に書かないが,そのつどやってみること).
> x <- c(10,20,30)
配列の添字は Ruby (C,Java) とちがって 1 からスタートすることを確認.
> x[1] > x[2]
次の例を実行して, 2:10の形の意味を知ろう.
> x <- c(2:10)
次を実行すると,オブジェクトの表示はどうなるだろうか? 行頭の [1] とか [19] のような表示は何を意味するか?
> x <- c(1:100)
上の解説:オブジェクト表示の行頭に示される [1] のような記号は,行の先頭のデータが何番目であるかを示している.オブジェクトが 1個であっても,それは要素数1の配列のようなものであることがわかる.
四則演算や関数はすべてのデータに対して実行される.総和,平均,分散, 標準偏差など,データ集合に対して適用される関数もある.
> x <- c(1,2,3,4) > x + 10 > x * 3 > sqrt(x) > sum(x) > mean(x) > var(x)
次の例を試して意味を考えよう.
> x <- c(1,2,3,4) > y <- c(3,4,5,6) > x + y > x * y
> x <- c(1,2,3,4,5) > y <- c(3,4,5,6) > x + y > x * y
次の操作の意味を考えよう.とくに c とcbind の違いはどうか? cbind されて生成するオブジェクトはどんな性質を持つか?
> Age <- c(19,21,17) > Height <- c(160,165,152) > Weight <- c(58,61,49) > A <- c(Age, Height, Weight) > B <- cbind(Age, Height, Weight) > A > B > B[1,] > B[2,] > B[,1] > B[,2]
R をインタラクティブモードで動かすのは,最初は楽でも本格的な用途では面倒だ (Ruby のプログラムを irb だけでやるなんてことはしないよね?). ソースファイルに R の処理を書いて実行するほうが当然楽だ.なお,この種のプログラムは, しばしば「スクリプト」と呼ばれる. R のスクリプトを書くには次のことに留意しよう.
#! /usr/bin/env Rscript
> ./hogehoge.R
上のデータ操作をスクリプトに書いて実行して見よう.
Age <- c(19,21,17) Height <- c(160,165,152) Weight <- c(58,61,49) B <- cbind(Age, Height, Weight) B ## ## この後でいろいろ試してみよう. ## 上の3人の年齢,身長,体重について,総和,平均,標準偏差を求めよ.