値を直接指定して生成する
c(...)
の関数の中に要素を列挙する。
|
> c(1, 2, 3, 4, 5) [1] 1 2 3 4 5 |
同じ値が繰り返されるベクトル
要素が値の場合。
|
> rep(3,5) [1] 3 3 3 3 3 > rep(3,times=5) [1] 3 3 3 3 3 |
ベクトルを与えると、そのベクトルの要素が繰り返される。
|
> rep(c(1,2,3),3) [1] 1 2 3 1 2 3 1 2 3 > rep(c(1,2,3),times=3) [1] 1 2 3 1 2 3 1 2 3 |
ベクトルの要素を要素ごとに繰り返す。
|
> rep(c(1,2,3),each=4) [1] 1 1 1 1 2 2 2 2 3 3 3 3 |
要素ごとに繰り返しながら全体を繰り返す。times
とeach
の指定順は関係しない。
|
> rep(c(1,2,3),times=3,each=2) [1] 1 1 2 2 3 3 1 1 2 2 3 3 1 1 2 2 3 3 |
一定値で増減するベクトル
1ずつ増減
[開始値]:[終了値]
で指定する。
|
> 1:5 [1] 1 2 3 4 5 > 2:-2 [1] 2 1 0 -1 -2 |
seq()
関数を使っても同じ。
|
> seq(1:5) [1] 1 2 3 4 5 > seq(2:-2) [1] 1 2 3 4 5 |
seq()
関数の本来の表現。
|
> seq(1,5) [1] 1 2 3 4 5 > seq(2,-2) [1] 2 1 0 -1 -2 |
1以外のステップ値で増減するベクトル
seq()
関数の”by=”引数でステップ値を指定。
|
> seq(0,8,by=2) [1] 0 2 4 6 8 > seq(8,0,by=-2) [1] 8 6 4 2 0 |
単に引数を3つ指定した場合は、3つ目の値が”by=”の値とみなされる。
|
> seq(0,12,3) [1] 0 3 6 9 12 |
終了値がジャストでない場合は手前まで。
|
> seq(0,10,by=3) [1] 0 3 6 9 > seq(0,-10,by=-3) [1] 0 -3 -6 -9 |
ただし要素の変化方向と増減値の符号が逆の場合はエラー。
|
> seq(0,5,by=-2) seq.default(0, 5, by = -2) でエラー: 'by' 引数中に誤った符号があります > seq(5,0,by=2) seq.default(5, 0, by = 2) でエラー: 'by' 引数中に誤った符号があります |
ベクトルの長さ(要素数)を指定
length.out
属性で指定。
|
> seq(0,18,length.out=3) [1] 0 9 18 |
length.out
の代わりにlength
、len
としてもよい。
|
> seq(0,10,length=3) [1] 0 5 10 > seq(0,10,len=4) [1] 0.000000 3.333333 6.666667 10.000000 > seq_len(0,10,5) |
seq_len()関数は、非負の整数で長さを与えて数列を生成。
|
> seq_len(5) [1] 1 2 3 4 5 |
sequence()関数
seq()
関数とは違う。
引数に整数値を持つベクトルc(n1, n2, …)を指定して、各要素を終了値としたベクトル1:n1、1:n2、…を結合したベクトルを返す。
|
> sequence(4) [1] 1 2 3 4 > sequence(c(1,2,3,4)) [1] 1 1 2 1 2 3 1 2 3 4 > sequence(c(4,3,2,1)) [1] 1 2 3 4 1 2 3 1 2 1 > sequence(c(1,3,5)) [1] 1 1 2 3 1 2 3 4 5 |
乱数列の生成
Rでは、様々な確率分布に従う乱数列を生成することができる。
基本形はr<name>(n, <parameters>)
の形を取り、<name>
で確率分布を、<parameters>
で確率分布に対応したパラメータを指定する。
一様分布
runif(n, min=a, max=b)
(a, b)の一様分布に従う乱数をn個生成する。
|
> runif(10, -1, 1) [1] 0.3411880 -0.6890782 0.5073527 0.6238675 -0.5368339 [6] 0.3966292 0.4342262 -0.1191653 0.5260462 0.3214433 <\pre> |
二項分布
rbinom(n, size=s, prob=p)
確率pの二項分布に従う乱数を生成する。たとえば不良品率pの部品からs個のサンプルを取り出し、不良品の数を数えるという試行をn回繰り返す、などの例に相当する。
|
> rbinom(10, 1, 0.2) [1] 0 1 0 0 0 0 0 0 1 0 > rbinom(10, 1, 0.2) [1] 1 0 0 0 0 0 0 0 0 1 > rbinom(10, 5, 0.2) [1] 2 1 0 0 0 3 2 0 3 1 > rbinom(10, 5, 0.2) [1] 1 2 2 2 0 0 1 2 4 0 |
指数分布
rexp(n, rate=l)
l=の指数分布に従う乱数を生成する。
ポアソン分布
rpois(n, lambda=l)
l=のポアソン分布に従う乱数を生成する。
正規分布
rnorm(n, mean=m, sd=s)
平均m、標準偏差sの正規分布に従う乱数を生成する。