2016年12月21日水曜日

変数・ベクトル

> x=1+2
 
> x*5
[1] 15
1行目、1+2を計算して、その結果を変数 x に代入しています。

このように = が使われたとき、単に数学的に等しいという意味でなく、代入という動作をします。
なお、Rにおいては、代入は <- を使うことが推奨されています。

x の値が3なので、3×5=15が表示されています。

> x=c(4,7,-1) 
 
> x
[1]  4  7 -1
c はベクトルを作る関数です。つなげるという意味のconcatenateの頭文字です。

ベクトル(4,7,-1)を作り、変数 x に代入し、次の行で表示しました。

なお、変数 x は先ほどと同じ名前の変数です。この場合、以前の記憶は消えています。

ベクトルの意味がわからなくても問題ありません。いくつかの数を一グループとして考えるだけです。 逆に、高校でベクトルを学んだ人は、あまりそれにとらわれない方がよいでしょう。高校の数学ではせいぜい3次元どまりですが、Rでは100次元とか普通です。

R において、ベクトルは重要です。ベクトルを理解し、自由自在に使えるようになることはR使いへの第一歩です。

> x*3
[1] 12 21 -3 
 
> y=c(3,0,2) 
 
> x+y
[1] 7 7 1
3を掛けると、すべての成分に3を掛けます。

同じ長さのベクトルを足すと、各成分ごと足されます。

長さのちがうベクトルとの演算では、短い方が繰り返し使われます。確認しておいてください。

> length(x)
[1] 3 
 
> sum(x)
[1] 10 
 
> max(x)
[1] 7 
 
> mean(x)
[1] 3.333333
上から順に、長さ(次元)、合計、最大、平均です。

> 1:5
[1] 1 2 3 4 5
> sqrt(1:5)
[1] 1.000000 1.414214 1.732051 2.000000 2.236068
大変便利な演算子に :(コロン) があります。 1:5 で1から5までの数からなるベクトルを作ります。

 sqrtはルートです。
通常は sqrt(2) などのように使うのですが、ベクトルを引数に渡すと、各値のルートからなるベクトルを返します。

> 1:3+5
[1] 6 7 8 
 
> 1:3*3
[1] 3 6 9 
 
> 1:3^2
[1] 1 2 3 4 5 6 7 8 9
:(コロン)の優先順位は、+-*/より高くて、^より低いです。 疑問が起きたら確認しましょう。

> x=c(3,5,7,8,0) 
 
> x[1]
[1] 3 
 
> x[2:4]
[1] 5 7 8 
 
> x[-(2:4)]
[1] 3 0 
 
> c(x,12,16)
[1]  3  5  7  8  0 12 16
ベクトルの各要素へのアクセスです。x[1]で1番目の成分を表します。番号は1から始まります。ほかのプログラミング言語では0から始まることが多いのですが、R では1から始まります。

 x[2:4]は2,3,4番目の成分を表します。先ほど出てきた:(コロン)です。

 x[-(2:4)]のようにカギ括弧の中に負の数を指定すると、その番号を除いたベクトルを返します。負の数と正の数の混在は許されていません。

 c はベクトルの結合です。こんな風にも使えます。

 x[1]=100のように代入することもできます。確認してみてください。

問題1 1+2+3+・・・+100 

問題2 5+7+9+・・・+99 (5から99までの奇数の和)

問題3 2+4+8+・・・+2^10 (初項2、公比2の等比数列の第10項までの和)


0 件のコメント:

コメントを投稿