mathematics

「R」学習(1)

2016年4月4日 月曜日 曇り

参考文献 船尾・高浪 データ解析環境「R」 工学社 2005年

「R」の使い方を学習する。

*****

「R」で変数に数値を代入する際、「=」を使うこともできるが、一般的には左矢印を表す < - を使う **** 現在、標準でインストールされているパッケージは以下の通り: > search()
“.GlobalEnv” “tools:RGUI” “package:stats” “package:graphics” “package:grDevices”   ”package:utils” “package:datasets”
[8] “package:methods” “Autoloads” “package:base”

*****

データを「ベクトル」として代入する場合は、関数 c( ) を用いる。
データをベクトルとして代入した後は、ベクトル用の関数を用いることで総和や標準偏差などを求めることができる。(同書、p77)

データの代入と表示を一度に行う場合は、代入文を括弧でくくる。(同書、p78)

演算子「:」を用いると、x < - 1:13 #1から13までの公差が1の等差数列をつくることができる。 13:1とすると公差が-1の等差数列を生成する。 seq(1,5,length=3) 長さ(要素数)3の 1から5までの等差数列を生成する。 seq(1,5,by=2) 1から5まで2ずつ増加する等差数列を生成する。 rep(1:5,times=3) 数列 1:5 を3個繰り返した数列を生成する。 rep(1:5,3)でも可。 > rep(1:5,times=3)
1 2 3 4 5 1 2 3 4 5 1 2 3 4 5
rep(1:5, length=10) 数列1:5を、数列の長さが10になるまで繰り返したような数列を生成する。
ちなみに、たとえば rep(1:5, length=14) だと・・
> rep(1:5, length=14)
1 2 3 4 5 1 2 3 4 5 1 2 3 4
ということで、長さが基本単位の整数倍になっている必要はない。
numeric(7) 0を7個並べたベクトルを生成する。
unique(x) ベクトル x 中の反復した値を除いたベクトルを返す。
> x < - c(70, 62, 66, 67, 65, 63, 63, 65, 68, 59) > sum(x)
648
> sd(x)
3.190263
> unique(x)
70 62 66 67 65 63 68 59

実数に対して計算を行う関数はベクトルに対しても使うことができる。(同書、p80)
> sqrt(x)
8.366600 7.874008 8.124038 8.185353 8.062258 7.937254 7.937254 8.062258 8.246211 7.681146
> unique(sqrt(x))
8.366600 7.874008 8.124038 8.185353 8.062258 7.937254 8.246211 7.681146

ベクトルに対して使うことができる数学関数
log(x) はeを底とする自然対数
log10(x) が10を底とする自然対数
abs(x) 絶対値 以下の関数は(x)を省略:
trunc 整数部分
round 丸め
floor 切り捨て
ceiling 切り上げ
たとえば・・
> round(sqrt(x))
8 8 8 8 8 8 8 8 8 8

ベクトルに対して演算を行う関数:
sum (総和)
cumsum (累積和)
prod 総積
diff 前進差分
rank 各要素の順位
order 各要素の元の位置
sort 昇順整列
rev 要素の逆順
length ベクトルの長さ(要素数)

先ほどのベクトルで実際にやってみると・・

> x < - c(70, 62, 66, 67, 65, 63, 63, 65, 68, 59) > sum(x) 総和
648
cumsum (累積和)
> cumsum(x)
70 132 198 265 330 393 456 521 589 648
prod 総積
> prod(x)
1.291152e+18
diff 前進差分
> diff(x)
-8 4 1 -2 -2 0 2 3 -9
rank 各要素の順位 以下のように小さい方から数えて順位がでる。同順位なら.5のような形になるようだ。
> rank(x)
10.0 2.0 7.0 8.0 5.5 3.5 3.5 5.5 9.0 1.0
order 各要素の元の位置 (同順位でも.5のような形にしないで、先に出てきた方に若い順位を割り当てるようだ。・・始めて見る関数なので少しとまどっている。)
> order(x)
10 2 6 7 5 8 3 4 9 1
sort 昇順整列
> sort(x)
59 62 63 63 65 65 66 67 68 70
rev 要素の逆順
> rev(x)
59 68 65 63 63 65 67 66 62 70
length ベクトルの長さ(要素数)
> length(x)
10

*****

乱数列を作る関数
「R」には乱数列を生成する関数が多数用意されている。(同書、p79の表参照)

*****

**********