先日投稿したR統計の備忘録の続きです。
今回は、変数とベクトルの意味を理解するところまでを目指します。
超初心者向け、統計プログラムR言語の基本。変数とは。
変数って何?
まず、変数という概念を確認します。
変数は「とりあえず数字や式に名前を付けときましょう」みたいな考え方です。(ちょっと不正確ですが。)
たとえば「2+5」という式に「x」という名前を付けておく場合、
x <- 2+5
みたいに書きます。これを「x」に「2+5」を代入する、という言い方もします。
「<-」は「←(矢印)」を意味します。
上記を実行すると、次からは「x」を「2+5」と認識しています。
試しに、ただ「x」と打って「ctrl+R」で実行してみて下さい。
コンソールにはちゃんと
> x [1] 7
と、「2+5」の答えが返ってきます。
ちなみに、「<-」の代わりに「=」でも同じ結果が得られます。
変数の名前の付け方
変数は半角アルファベットであれば何でも良いです。
「a」でも「b」でも「x」でも「y」でも「pencil」でも「apple」でも使えます。
数字は先頭でなければ使えます。「date22」とかでも大丈夫。
あと、ピリオドやアンダーバーも使えるので、「fruit_apple」とかもOKです。
大文字と小文字は区別されるので、気をつけてください。
※実は全角アルファベットや平仮名でも可能ですが、ポインタがずれたりするのでおすすめしません。
変数の使い方
まあ、最初のうちは変数の存在意義がよく分からないと思いますが、とりあえず使ってみるのが大事です。
試しに以下の変数を入力後、実行してみましょう。
tomato <- 150
potato <- 80
egg <- 130
食べ物に値段をつけるイメージで。
全部足してみます。
tomato+potato+egg
コンソールには以下のように結果が表示されているはずです。
> tomato+potato+egg [1] 360
ちゃんと値段が出てますね。
しかし、後から卵が値上がりしました。
egg <- 150
上記を実行すると変数を上書きすることができます。
試しにもう一度全部足してみましょう。
> tomato+potato+egg [1] 380
ちゃんと値上がりしていますね。
Rにおける、ベクトル。
とりあえず、変数は理解したことにして、次はベクトルを説明します。
ベクトルと聞くとなんだか難しそうですが、まず書いてみましょう
y <- c(1,2,3,4,5)
ベクトルはc()で書きます。中の数字はカンマで区切りましょう。
さて、yに代入したベクトルは、どのように出力されるのでしょうか。
試しに、yを実行してみます。
> y [1] 1 2 3 4 5
入れた数字がすべてコンソールに出てきますね。
では今度はちょっと計算を入れてみましょう。
y*2
上記を実行するとこうなります。
> y*2 [1] 2 4 6 8 10
それぞれの数字が2倍になって返ってきました。
さらに、ベクトル同士で計算もできます。
> z <- c(6,7,8,9,10)
> z-y
[1] 5 5 5 5 5
「z」という新しい変数に適当なベクトルを代入して、そこから「y」を引いてみました。
ベクトル同士で計算する時には、基本的には要素の数合わせる必要があります。
要素の数が合わない時には、Rでは次のような挙動をします。
- 一方がもう片方の倍数になっているとき→少ない方を繰り返して計算
- 倍数になっていないとき→エラー
たとえば、A(要素が4個)、B(要素が16個)の2つのベクトルがあったとしたら
> A <- c(5,3,4,7)
> B <- c(2,1,6,4,8,3,4,8,2,3,5,7,9,4,6,3)
> A+B
[1] 7 4 10 11 13 6 8 15 7 6 9 14 14 7 10 10
というように、Aの要素を4回繰り返して足すことになります。
Rでベクトルを操作するための、基本的な関数
ベクトルを使えるようになれば、簡単なデータを処理することもできます。
具体的な例を出しつつ、関数を紹介していきましょう。
Rのデータ処理の具体例
まず、架空の患者さん(とりあえずAさんとしておきましょう)の呼称課題の成績を、データとして扱うことにします。
変数は「A.koshou1」とでもしておきましょう。
A.koshou1 <- c(3,5,3,6,4,5,8,7,4,5)
summary関数
実行して変数を作ったら、まずは「summary」という関数を使ってみましょう。
summary(A.koshou1)
すると、コンソールにこんな感じで表示されます。
> summary(A.koshou1) Min. 1st Qu. Median Mean 3rd Qu. Max. 3.00 4.00 5.00 5.00 5.75 8.00
「summary」は要約統計量を出してくれる便利な関数です。
表示されている結果は、左側から、最小値、 第 1 四分位、中央値、平均、第3四分位、最大値となります。
var関数とsd関数
次は分散と標準偏差も求めてみましょうか。
分散は「var」、標準偏差は「sd」という関数を使います。
var(A.koshou1)
sd(A.koshou1)
> var(A.koshou1) [1] 2.666667 > sd(A.koshou1) [1] 1.632993
ちなみに、「分散って何だっけ?」って人はこちらの記事をどうぞ。
barplot関数
ついでなんで、棒グラフで成績の推移を見てみましょう。
barplot(A.koshou1,main="Aさんの呼称成績")
と、打ち込んで実行してみて下さい。
こんな感じで棒グラフが出てきます。

Aさんの喚語能力は少しずつ改善がみられていますね。多少ムラはありますが。
Rを使う意味
とまあ、こんな感じで簡単なベクトルまで使えるとデータの処理っぽくなってきます。

この程度なら、エクセル使った方が慣れてるし楽だわ

・・・
仰る通りですが、もう少し複雑な処理になると圧倒的にRの方が早くて楽です。
気が向いたら続きを書きますので、気長にお付き合いいただければと思います。
ではでは、今回はこの辺で。
コメント