[R]データの一括計算

サイト移転のお知らせ

移転先はこちらです。
[R]でデータを一括計算
新たな記事は移転先に掲載しておりますので、そちらをご確認ください。

スポンサードリンク

ベクタの形とベクタの作り方

ベクタとは数字や文字がいくつか並んだデータの集合を言います。

 

例えば次に示すのはベクタです。

数式

数式

 

このときにベクタの中の1つの数値や文字のことをベクタの成分と言います。

 

例えば、「ベクタ 数式 の第一成分は 数式である」というような言い方をします。

 

ただ単に数字や文字が並んだものをベクタと言い、いくつかある数値や文字のうち1つをさしてベクタの成分と言うだけなので、「aからzまでをアルファベットと言い、アルファベットの1番目はaである」ということと大差はありません。

 

こればっかりは決まりなので、そういうものだと思ってください。

 

 

Rではベクタが基本になります。

 

例えば、3という1つの数値であってもRでは成分がひとつのベクタとして扱われます。

 

ただし、2つ以上の数値の場合は基本的には c()関数を使わなければRで表現することはできません。

 

どういうことかというと最初に例示したベクタ 数式 を作るには次のようにします。

c(1, 3, 7, 1, 6)

 

これを 数式というベクタとして保存したい場合には次のようにします。

x <- c(1, 3, 7, 1, 6)

 

この <-(左矢印)を代入式と言います。

 

代入式とはRで繰返し使いたいデータを一時的に保存するための記号のようなもので、Rに「 数式はこういうデータです」と覚えさせるために使います。

 

代入式を使えば、計算の結果や今後紹介するベクタ以外のデータでもRの一時データとして使いたいときに呼び出せるようになります。

 

保存したベクタ 数式を呼び出したいときには次のようにすれば内容を確認できます。

x

ベクタの計算とはデータの集合を計算すること

ベクタの計算には四則演算やR特有のベクタ計算、表計算ソフトのような関数を使ったものがあります。

 

普通の四則演算はベクタでも同じです。

 

ベクタ 数式 の各成分を3倍したいと思ったら次のようにするだけです。

x * 3

 

その他の四則演算でもやり方は同じです。

 

ベクタ同士の四則演算では少しだけ注意が必要です。

 

まずひとつは、数学で言われるようなベクタの内積や外積とは違うということです。

 

ここでは内積や外積に触れても実用的ではないので一切触れませんが、とにかく違うということだけは覚えておいて下さい。

 

二つ目はベクタ同士の四則演算では成分の個数が同じ2つのベクタの場合のみ正確に成立するということです。

 

例を挙げて説明します。

 

体重(weight)と身長(height)のデータが次のように得られたとします。

weight <- c(58, 79, 45)
height <- c(1.61, 1.73, 1.55)

 

このとき、それぞれのBMI(ボディ・マス・インデックス)を求めるには次のようにします。

BMI <- weight / height^2
BMI

 

このような入力をすると、各成分が対応する成分に対して計算されます。

 

^(ハット)記号はべき乗を示し、 数式であれば x^2のように記述します。

 

2つのベクタの成分の数が同じなので、対応する成分同士の計算となり、正確な値が求められていることがわかります。

 

では、データ入力の時に間違って2番目の身長データを入力し忘れたとします。

height <- c(1.61, 1.55)

 

2番めが抜けてしまったことは大問題ですが、これに気づかずBMIを求めると次のような警告メッセージが表示されます。

BMI <- weight / height^2
警告メッセージ: 
In weight/height^2 :
   長いオブジェクトの長さが短いオブジェクトの長さの倍数になっていません 

 

この警告メッセージは「成分の数が異なっていて正しく計算されていないかもしれません」という意味です。

 

長さというのはRではベクタ成分の個数を意味します。

 

では結果はどうなっているでしょうか?

BMI
[1] 22.37568 32.88241 17.36044

 

一応のところ計算はされています。

 

当たり前ですが、この結果は間違っています。

 

Rではベクタの繰返しを勝手に行う機能が備わっているため、3つ目まで計算が行われています。

 

今回の場合は体重のベクタの長さは3で、身長のベクタの長さは2でした。

 

身長のベクタが体重のベクタより1つ短いので、体重のベクタの長さまで繰り返されたことになります。

 

どういうことかというと、入力の段階では

数式

というベクタだったはずが、計算時には

数式

というベクタとして計算されたということです。

 

この場合は警告が出ているので、操作している本人が気づくことができます。

 

しかし、間違え方によっては警告が出ない場合があります。

 

例えば、体重のベクタの長さが4で身長のベクタ長さが2の場合です。

 

この場合は警告は一切出ません。

weight <- c(58, 79, 45, 52)
height <- c(1.61, 1.73)
BMI <- weight / height^2
BMI
[1] 22.37568 26.39580 17.36044 17.37445

 

これは、体重ベクタの長さが身長ベクタの長さの2倍になっているためです。

 

Rはベクタの長さが整数倍のときは警告すべきとは判断しないので、注意しましょう。

スポンサードリンク

「[R]データの一括計算」と同じカテゴリーのページ

Rとは?
Rについての説明。 Rを利用するメリット。
[R]インストール手順
Rのインストール方法。 インストール中の画像付。 最初にしておきたい設定。
[R]起動と終了と操作方法
Rの起動、終了。 対話環境について。 R基礎講座の読み方。
[R]作業ディレクトリを変更する
Rでデータを読み込んだりするときに、ディレクトリを変更した方が作業しやすい場合がある。 作業ディレクトリ(作業フォルダ)を変更する方法。
[R]電卓として使う
Rの一番簡単な使い方は関数電卓として使う方法。 電卓として使いながら、基本的な操作を紹介する。
[R]変数の作り方と計算
Rでの変数の作り方と数値計算の方法。
[R]ベクタというデータ型
Rが最も力を発揮するベクタというデータ型を覚えておきましょう。
[R]表データを読み込む
Rで表形式のデータを読み込む方法。 たった1行の命令で表形式のデータを読み込むことができる。