Inkscapeのマニュアル本、各種サイトで好評発売中! ▶公式サイトはこちらから

表計算ソフトに置き換えてRのベクトルを理解する

Rではベクトルという概念でデータを取り扱うのですが、はじめは理解が難しいので、Rは初心者に優しくないと言われています。

でも、Excelのような表計算ソフトに置き換えて考えるとそれほど難しいことでは無いのです。

むしろ、データを取り扱うなら表計算ソフトよりも便利なことがたくさんあります。

今回はこのベクトルを中心に、Rの基本機能について解説していこうと思います。

表計算ソフトの行と列をRに置き換えて考える

例えば、5人の患者の体重のデータを集めたとします。

Aさん:58kg
Bさん:79kg
Cさん:46kg
Dさん:60kg
Eさん:61kg

これを表計算ソフト、例えばExcelに打ち込んで1つの表データにします。

2016-10-04_14h12_36

このときの「患者」の列と「体重」の列が、Rで言うところのベクトルになります。

Rでこのデータを扱うときは

patient <- c("A", "B", "C", "D", "E")
weight <- c(58, 79, 46, 60, 61)

というふうに「c() 」関数を使って読み込みます。

cは「コンストラクト(組み立てる)」という意味らしいです。

このときの「<-」は代入記号と言って、「weightという名前でこの数字(ベクタ)を登録するよ~」という命令になります。

データを呼び出すときは、保存した名前を入力します。

2016-10-04_22h33_25

「全部手で打つの?」
と思った方は安心してください。
今回はRの基本操作の説明なので、データ入力をあえてこの方法にしています。
もっと便利な方法もありますが、そのあたりはまた別のところで紹介していきますね。

表計算と同じ計算をRでやってみる

ベクタとして保存したデータは色々な計算を行うことができます。

表計算ソフトでは平均値を求めたり、合計を求めたりをセルに数式を入力して行います。

2016-10-04_22h48_18

体重の合計には基本的に意味は無いのですが、平均値には意味がありますね。

Rで平均値を求めたいときは

mean(weight)

というふうに「mean()」関数を使います。

2016-10-04_22h52_28

平均値を値として読み込ませておきたいときは、ベクタを作ったときのように代入の「<-」で新しい名前のデータとして登録します。

weight.mean <- mean(weight)

保管する名前として「.(ドット)」を使うことができるので、このように活用すると区別をつけやすくて便利です。

保管したデータ(今回は平均値)は呼び出して表示したり、他の計算に使うことができます。

数値計算の関数はExcelとは比較にならないくらい多いので、基本的に同じような計算はいくらでもできます。

  • 合計値を知りたければ「sum()」
  • 分散なら「var()」
  • 中央値なら「median()」

という感じで、Excelのように様々な関数を使うことができます。

表計算ソフトが苦手にしている一括計算をRでやってみる

ベクトルの計算の一番いいところは、表計算にはない一括計算の概念があるところです。

新たに身長のデータを集めたとします。

Aさん:164cm
Bさん:173cm
Cさん:155cm
Dさん:180cm
Eさん:149cm

このデータを使ってそれぞれの患者のBMI(ボディ・マス・インデックス)を求めてみます。

$latex \mbox{BMI} = \mbox{Weight(kg)} \div \mbox{Height(m)}^2 &s=2 $

 

表計算ソフトだと、まずデータを打ち込みして、

2016-10-04_23h18_49

隣の列にそれぞれの人のBMIを求める数式を入れますね。

2016-10-04_23h39_12

身長は普通cm(センチメートル)の単位なので、100で割ってm(メートル)へなおしています。

1つのセルだけ入力して、後はコピーペーストで一応求めることができます。

この計算だと5個なのですぐできますが、300とか1000とかのデータを扱っていると、画面のスクロールが結構面倒です。

 

Rで同じことをやってみると、Excelよりメチャクチャ簡単だということがわかります。

まずデータを入力します。

height <- c(164, 173,155, 180, 149)

BMIを求めるには名前をつけたデータを使って

BMI <- weight / (height/100)^2

とするだけです。

2016-10-04_23h52_35

Rではベクトル同士を計算に使用すると、

  • 1番目の数値同士
  • 2番めの数値同士
  • ・・・
  • 最後の数値同士

という感じでベクトルの要素同士を計算してくれます。

高校数学に出てくるベクトルとか行列の計算とは違うのでその点は誤解のないようにしてください。

あとがき

Rは初心者には敷居が高いと言われていますが、表計算ソフトのように数値の一覧を見ながらデータを扱わないので、そんな印象なのかもしれません。

よく使うExcelのようなソフトと比べて使用してみると、統計に特化した専用のソフトで、使い勝手が凄くいいことがわかります。

大学の研究や医療統計の分野ではスタンダートになってきている統計ソフトなので、早いうちから覚えておいて損はないかなと思います。

では今回はこのあたりで。

 

2 COMMENTS

eclipse

はじめまして

R ずいぶん 気に入られておられるのですね。
放送大学のオープンコースウェアで Rを使った授業が見られます 

http://ocw.ouj.ac.jp/tv/1570188/

15回すべて動画で見られます。

本では
新米探偵、データ分析に挑む
ってのもあって、これは、人から聞きました。

ビジネス活用事例で学ぶ データサイエンス入門

も、なかなか面白いです。こちらは持ってます。私もR大好きです よろしく!

返信する
とある薬剤師

はじめまして。
コメントありがとうございます。

書籍のリンクがはみ出していたので少し修正させていただきました。
ご了承ください。

栄養学分野でのデータ解析にRを利用されているのですね。
最近はRの利用者も増え、関連の書籍も大分充実してきましたね。
ご紹介ありがとうございます。

私の場合は統計の勉強にRを使っていると言った方が近いです。
勉強方法などはこちらで紹介しているので、良かったら御覧ください。
http://wb-nahce.info/study-statistics/

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA