目次へ

R 超入門

R は統計用パッケージとして近年著しく発展,普及してきている.R は GNU ライセンスに従うフリーソフトウェアで,一般的なOSすべてで走る.また他の SPSS や SAS と異なって,R はプログラミング言語として開発されていて, 柔軟な処理が可能である. そのため,さまざまな専門領域のユーザーたちによって,分野に特化した ライブラリが開発されていることも大きな特徴である.

環境変数 PATH を設定する

設定の理由: R はインタラクティブに使うことができて,そのベースで解説されている本も 多い.が,ちゃんと使おうと思ったら,スクリプト(インタプリタのシンプル なプログラムをこう呼ぶ)のソースをエディタで書いて実効すべきだ. そのためには,R のアイコンをクリックして起動するだけではなく, ターミナル上で動かせるようにする必要がある.Mac と Linux の場合には インストール時に環境変数の設定まで行われるが,Windows の場合にはそう ならないので,別途設定を行う.

[コントロールパネル]→[システムとセキュリティ]→[システム] →[詳細設定]→[環境変数の設定]でメニューを開き, 下の図のように

 
	;C:\R\R-3.1.0\bin\x64
      
を追加する.

インストールの目標(Windows)

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 & と打つと 次のような起動画面が現れる。

Rgui

終り方

終了するには次のように q() と入力すればよい。 すると問い合わせが表示される(されないこともある).それには n で答えておこう. 意味がわかるようになったら y でもよい.

      > q()
      Save workspace image? [y/n/c]: n
    

インタラクティブモード(R コマンダー)で R をいじってみる

代入(オブジェクトの生成)

代入してオブジェクトを生成するには <-を使う. = でも使えることがあるが,場合によっては そうでないので,正しい方を使おう.

      > x <- 125
      > str <- "ABC"
    

オブジェクトの表示

代入されたオブジェクトを表示するには,単にその名前を タイプすればよい.

      > x
      [1] 125
      > str
      [1] "ABC"
    

R のオブジェクトは配列のような振る舞いをする.

次のようにして複数のデータを結合できる.(オブジェクトの表示は特に書かないが,そのつどやってみること).

      > 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のプログラムを動かす

スクリプトのテンプレート

R をインタラクティブモードで動かすのは,最初は楽でも本格的な用途では面倒だ (Ruby のプログラムを irb だけでやるなんてことはしないよね?). ソースファイルに R の処理を書いて実行するほうが当然楽だ.なお,この種のプログラムは, しばしば「スクリプト」と呼ばれる. R のスクリプトを書くには次のことに留意しよう.

上のデータ操作をスクリプトに書いて実行して見よう.

	Age <- c(19,21,17) 
	Height <- c(160,165,152) 
	Weight <- c(58,61,49)
	B <- cbind(Age, Height, Weight)

	B ## 
	## この後でいろいろ試してみよう.
	## 上の3人の年齢,身長,体重について,総和,平均,標準偏差を求めよ.
     

情報源

R のインストール(RjpWiki)