ベクトルってのは、みんなが高校生のときに習ったベクトルのことです。
ベクトルの計算がRやS-Plusで簡単にできるというのは、もちろん、すばらしいのですが、RやS-Plusではベクトルはさらに重要な意味を持っています。
C言語やJavaでは、繰り返しなどの処理でforなどのループ構造を多用しますが、RやS-PlusではVectorized calculationと言うのを多用します。
この辺は、後でゆっくり勉強しましょう。
今回は、簡単なベクトルの計算を理解しましょう。
> 1:10
[1] 1 2 3 4 5 6 7 8 9 10
> 5:-3
[1] 5 4 3 2 1 0 -1 -2 -3
> seq(1,3,by=0.25)
[1] 1.00 1.25 1.50 1.75 2.00 2.25 2.50 2.75 3.00
> rep("a",3)
[1] "a" "a" "a"
まずは、ベクトルを生成するための便利なコマンドを覚えると良いでしょう。
":"は刻み幅1で数列を作ります。
seq関数を使えば、刻み幅をby=xで指定できます。
rep(x,y)でxをy回繰り返すと言う意味です。
また、文字列は"string"と言うように"で括って表現します。
それでは、これらの数列の要素をひとつのベクトルにまとめましょう。
> a <- c(1:12)
> a
[1] 1 2 3 4 5 6 7 8 9 10 11 12
"c"はconcatenateと言う意味で、複数の要素を連結してひとつのベクトルを作ります。
今回は、a = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12) とベクトルが生成されました。
> b <- c("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec")
> b
[1] "Jan" "Feb" "Mar" "Apr" "May" "Jun" "Jul" "Aug" "Sep" "Oct" "Nov" "Dec"
文字列のベクトルを作ることもできます。
また、ベクトルの各要素に名前をつけることもできます。
> names(a)
NULL
今のところ、名前がないのでNULLが帰ってきました。
> names(a) <- b
> a
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
1 2 3 4 5 6 7 8 9 10 11 12
ベクトルaの各要素の名前をベクトルbにしました。
次はベクトルの各要素の呼び出し方を見てみましょう。
> a[2]
Feb
2
> a[5:9]
May Jun Jul Aug Sep
5 6 7 8 9
> a[-3]
Jan Feb Apr May Jun Jul Aug Sep Oct Nov Dec
1 2 4 5 6 7 8 9 10 11 12
> a[c("Sep", "Oct")]
Sep Oct
9 10
a[x]でベクトルaのx番目の要素を参照します。
また、xにベクトルを指定することもできます。
"-"をつけると「それ以外」と言う意味になります。
また、さきほどつけた要素の名前を直接指定してもかまいません。
ベクトルの計算がRやS-Plusで簡単にできるというのは、もちろん、すばらしいのですが、RやS-Plusではベクトルはさらに重要な意味を持っています。
C言語やJavaでは、繰り返しなどの処理でforなどのループ構造を多用しますが、RやS-PlusではVectorized calculationと言うのを多用します。
この辺は、後でゆっくり勉強しましょう。
今回は、簡単なベクトルの計算を理解しましょう。
> 1:10
[1] 1 2 3 4 5 6 7 8 9 10
> 5:-3
[1] 5 4 3 2 1 0 -1 -2 -3
> seq(1,3,by=0.25)
[1] 1.00 1.25 1.50 1.75 2.00 2.25 2.50 2.75 3.00
> rep("a",3)
[1] "a" "a" "a"
まずは、ベクトルを生成するための便利なコマンドを覚えると良いでしょう。
":"は刻み幅1で数列を作ります。
seq関数を使えば、刻み幅をby=xで指定できます。
rep(x,y)でxをy回繰り返すと言う意味です。
また、文字列は"string"と言うように"で括って表現します。
それでは、これらの数列の要素をひとつのベクトルにまとめましょう。
> a <- c(1:12)
> a
[1] 1 2 3 4 5 6 7 8 9 10 11 12
"c"はconcatenateと言う意味で、複数の要素を連結してひとつのベクトルを作ります。
今回は、a = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12) とベクトルが生成されました。
> b <- c("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec")
> b
[1] "Jan" "Feb" "Mar" "Apr" "May" "Jun" "Jul" "Aug" "Sep" "Oct" "Nov" "Dec"
文字列のベクトルを作ることもできます。
また、ベクトルの各要素に名前をつけることもできます。
> names(a)
NULL
今のところ、名前がないのでNULLが帰ってきました。
> names(a) <- b
> a
Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
1 2 3 4 5 6 7 8 9 10 11 12
ベクトルaの各要素の名前をベクトルbにしました。
次はベクトルの各要素の呼び出し方を見てみましょう。
> a[2]
Feb
2
> a[5:9]
May Jun Jul Aug Sep
5 6 7 8 9
> a[-3]
Jan Feb Apr May Jun Jul Aug Sep Oct Nov Dec
1 2 4 5 6 7 8 9 10 11 12
> a[c("Sep", "Oct")]
Sep Oct
9 10
a[x]でベクトルaのx番目の要素を参照します。
また、xにベクトルを指定することもできます。
"-"をつけると「それ以外」と言う意味になります。
また、さきほどつけた要素の名前を直接指定してもかまいません。