R言語(ベクトル)

アニメ『エルフィンリート』(elfen lied)(2004)

ベクターと呼ばれる特殊能力を持つ裸の女子と、コウタとユカが出合います。ジャンルはエログロでしょうか。 まだ一話しかみてないのでよくわかってませんが、全部みてから感想も更新します。

ベクターの語源はラテン語のvectorらしいです。ベクトル。英語読みでベクター。なんと、数学のベクトル(vector)と、割り込みベクターのベクター(vector)は同じものだったんですね。vectorですが、ラテン語で「運ぶ」という意味らしいです。学校で習うベクトルは、方向と長さを表すもんだ、と漠然と理解してはいたのですが、実は、方向、長さという二つの情報をまとめておく箱、みたいなものだったんです。

さて今回もR言語。ベクトルを使っていきたいと思います。R言語のベクトルは、複数の要素が格納できるオブジェクトです。他言語でいうところのリストや配列に当たります。
他言語で最初の要素のアクセスは、a[0] = 10、というように、0始まりの番号を使いますが、R言語では、1始まりの番号を使います。オブジェクトaの最初の要素は、a[1]となります。BASICでいうと、OPTION BASE 1の状態です。ただし、Rで起動した直後の状態では、aというオブジェクトは存在しません。

> a[1]=10
 a[1] = 10 でエラー:  オブジェクト 'a' がありません
>

aをベクトルとして初期化するには、vector関数を使います。

> a = vector()

こうすることで、aがベクトルとなりましたので、添え字を使ってアクセス可能となります。

> a[1] = 10
> a
[1] 10
>

先頭から順に入れていかないと、NA(Not Available)(欠損値)になります。

> a[3] = 30
> a
[1] 10 NA 30
>

ベクトル要素の追加は、添え字ではなく、append関数を使った方がよいでしょう。

> b = vector()
> b = append(b,10)
> b = append(b,20)
> b
[1] 10 20
>

ベクトル内の全要素は、同一型となるため、数値しかないベクトルに文字列を追加すると、すべて文字列に変換されます。

> b
[1] 10 20
>
> b = append(b,"Thirty")
> b
[1] "10"     "20"     "Thirty"
>

つづく

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA