Edit

R:基礎.ベクトルの作成

ベクトル作成の例

rep, seq, numeric, sample 関数の例をとりあげる。sample 関数は一番下に少し詳しく解説している。シミュレーションなどではよく使うが,使っていないと忘れるのでメモ…。

> c(1,2,3,4,5,6) # 数値を直接代入してベクトル作成
[1] 1 2 3 4 5 6

> rep(7,10) # 7を10回繰り返す
 [1] 7 7 7 7 7 7 7 7 7 7

> rep(1:7,3) # 1から7を3回繰り返す
 [1] 1 2 3 4 5 6 7 1 2 3 4 5 6 7 1 2 3 4 5 6 7

> seq (1,7,2) # 1から7まで一つ飛ばしで
[1] 1 3 5 7

> rep(seq(1,7,2),3) # 1から7まで一つ飛ばしで3回繰り返す
 [1] 1 3 5 7 1 3 5 7 1 3 5 7

> rep(1:7, each=3) # 1から7まで3回ずつ繰り返す
 [1] 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 6 6 6 7 7 7

> rep(seq(1,7,2), times=2, each=3) # 1から7まで3回ずつを2回繰り返す
 [1] 1 1 1 3 3 3 5 5 5 7 7 7 1 1 1 3 3 3 5 5 5 7 7 7
 
# 1か2を無作為に10こ作る
> set.seed(10); TRT <- sample(x=2, size=10, replace=TRUE, prob=c(0.5,0.5))
> TRT
 [1] 1 2 2 1 2 2 2 2 1 2

# 0行列をn 個つくる
> numeric(5)
[1] 0 0 0 0 0

# 0行列をn 個つくったあと10を各々に代入
> numeric(5) + 10
[1] 10 10 10 10 10


# sample(x, size, replace = FALSE, prob = NULL)
# x      : サンプリング元データ
# size   : サンプリング回数。
# replace: 同一の要素を繰り返しサンプリングするのを許容するか否か
# prob   : 確率で重みつける

> # 0 か 1を10回サンプリング
> sample(0:1, 10, replace = TRUE)
 [1] 1 0 1 0 0 1 0 0 0 1
> # 0 か 1を10回サンプリング(同じ重み)
> sample(0:1, 10, replace = TRUE, prob=c(0.5,0.5))
 [1] 0 1 1 0 0 1 1 0 0 0







参照先

Search This Blog