Rはもともと統計計算ソフトとして開発されてきた経緯があるが、フリーでオープンソースであったこともあり、多数の人たちがどんどんパッケージと呼ばれる追加機能を提供し、現在でもパッケージは増え続けている。Rさえ使えれば、それらの専門家が作ったパッケージを利用可能であり、ほとんど全ての統計計算ができる

近年では機械学習や深層学習といった人工知能のパッケージも開発されていて、データサイエンスの現場では非常に重宝されているツールの1つだ。

管理人の専門領域の1つである生物学と情報学の融合分野「バイオインフォマティクス」においても、Rが使いこなせるというのは必須である

これまで多数の生物学系の研究者からRやデータサイエンスについて相談を受けた経験を生かし、ここにR速習コースを用意した。

対象としているのはRやデータサイエンスを勉強したいがまだあまり経験のない、非エンジニアの方々である。

Rの基本操作

四則演算

+, -記号は算数と同じ意味である。かけ算は*記号、割り算は/記号になるのは、エクセルと同じである。
算数と同じく*や/が優先されるが、かっこを使って計算順番を変えることもできる。
累乗は^記号で表す

割り算の余りを求めるときには%を2つ重ねて%%とする。この場合は7 ÷ 3 = 2あまり1なので、1と表示される。

変数の扱い

変数に代入するにはこのように<-記号を使う。この例ではaという名前をつけた変数に100と入れている。

変数に入れたものは他の変数と計算に使うことができる。例えば100が入っている変数aと、10が入った変数bを足すには

クラス

Rにはクラスという概念があり, class () 関数で調べることができる。整数と小数はnumeric classになる。

文字はシングルクウォーテーション ( ' ) もしくは ダブルクウォーテーション ( '' ) で囲む。cという文字なら"c" とする。

文字はcharacterクラスになる。"c" は文字なのでcharacter classだが、先ほど計算した数値が入っているcはnumeric classになることに注意。

このように文字と数値は全く扱いが異なる

TRUE, FALSE (どちらも大文字) で真偽を表す。このような2値形式はBooleanと言い、logical classである。TRUE, FALSEはそれぞれT, Fと頭文字1文字で表すこともできる

ベクトル

ベクトルの定義

ベクトル (vector) はRにおける最も基本的なデータ構造の構成要素である。数学のベクトルとは少し違い、Rのベクトルは1次元の配列で、 これまで出てきたcharacter, numeric, logicalデータを保持できる。組み合わせるという意味のcombineの頭文字cを使って、要素をコンマで並べて定義できる。

例えば数値 (numeric class) のvectorを作ってみる

文字列 (character) のvectorは

Boolean (logical) のvectorは

同じベクトルで複数のクラスを同時には使えない

複数のclassを混ぜることはできない。どちらかに統一されてしまう 。例えばBooleanとnumericを混ぜるとnumericとなる

文字と数字を混ぜると文字 (characterクラス) になる

もし複数のclassを一緒に使いたいならlistを使う必要がある (第2話)。

ベクトルに名前をつける

ベクトルに名前をつけるのはnames () 関数を使う。例えば気温を入れたtempベクトルに、その曜日を名前としてつけるには

ベクトルによる計算

ベクトルの四則演算

ベクトルの四則演算は要素ごとの計算になる。例えばv1を(1,2,3), v2を (4,5,6) とした場合、v1 + v2は (1+4, 2+5, 3+6) で (5,7,9) となる。v1*v2なら (1*4, 2*5, 3*6) で(4, 10, 18) の要領だ。

Rの組み込み関数を使った統計計算

Rの組み込み関数を使うとより簡単に計算できる。例えばベクトル要素の総和をとるにはsum ()関数、ベクトル要素の積はprod()関数で求められる。

標準偏差はsd()関数, 分散はvar()関数, 最大値はmax()関数, 最小値はmin()関数で取得できる。

簡単な統計量の要約はsummary()関数で表示できる。

ベクトルの要素の取得

[]を使うとベクトルのその要素を取り出すことができる。複数まとめてとるならcで統合する。例えば、v1ベクトルの2番目の要素ならv1[2], 1・3番目ならv1[c(1,3)]とすればいい

ある一定範囲の要素を取ることもできる (slicing)。slicingをするにはコロン(:) を使う

ベクトルにつけた名前で要素を取得

ベクトルvのそれぞれの要素の文字a,b,c,dと名前をつけると、v['a'] とすれば最初の要素を名前で取得できる。もちろんこれはv[1]と同じである。複数の名前をcでまとめて指定することも可能。

数値の比較

>, <記号は算数と同じ意味の比較に使える。>=, <= という等号つきの意味になる記号もある。比較が正しければTRUE, 間違いならFALSEという結果になる

左右が等しいかどうかは=を2つ重ねて==記号を使う。等しくないは、Rで否定を表す!記号を=の前につけて!=と表記する。

マイナスの値と比較するときは注意が必要。(>, -などの間の) スペースの有無で意味が変わる。<と-の間にスペースがない<-記号は代入記号である。

このように比較をする<, >, ==, !=などを比較演算子という

比較演算子によるベクトルのフィルタリング

比較演算子はベクトルにも使える。それぞれの要素について、その比較を行う。例えば次の例では、v1の3つ全ての要素について2より大きいかという比較が行われ、FALSE, TRUE, TRUEとなる

ベクトルのフィルタリングに使うこともできる。FALSEになるものは除かれ、TRUEになるものだけが返される。次の例ではv>2の条件を満たすものだけが選択され、2, 3となる。

ヘルプとコンソール

ヘルプ機能

関数の使い方が分からなくなることはよくある。そういうときにはRのヘルプ機能で調べることができる。ヘルプの表示のさせ方はいくつかある

個人的には調べたい関数名の先頭に?をつけるやり方が直感的で分かりやすいと思う。
ヘルプは右下の画面に表示される。ヘルプの一番下にはExamplesが書かれているので、この使用例を見るのがいい

コンソールのクリア

これで第1話は終わりである。最後に、いろいろ結果が出力されている左下のコンソール部分をクリアする方法を紹介しよう。
control + Lを同時押しするだけである。

第2話について

今回の第1話ではRによる四則演算から、ベクトル構造までを紹介した。Rにはベクトルの他にあと3つの代表的なデータ構造がある。
第2話では、そのうちの行列について見ていこう。

この記事が気に入ったら
フォローしよう

最新情報をお届けします

Twitterでも情報発信中

こちらの記事もいかがですか?