Bus errorとSegmentation faultに困ったら見るブログ

物理の研究者による日々の研究生活のメモ書きです ( python/emacs/html/Japascript/シェルスクリプト/TeX/Mac/C言語/Linux/git/tmux/R/ポケモンGO)

【R】for文で回した計算をベクトル(リストではない)に追加していく

あるベクトルに他のベクトルを追記したいとき

x <- 1:10="" br="">x = 1:10
y = 11:20
x
[1] 1 2 3 4 5 6 7 8 9 10
y
[1] 11 12 13 14 15 16 17 18 19 20
x = c(x, y)
x
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

for文で回した計算をベクトル(リストではない)に追加していく

# まず空のベクトルを作る
list_sim = c()

# n_simがシミュレーション回数
for (i_sim in 1:n_sim){
 
 # ここでなんか計算する
 ....
 # 計算結果をベクトルに追加したい
 list_sim = c(list_sim, result)

}

タイトルにある通り、ここではベクトルを使っている

最初ハマったのはこういうときはリストを使うんだろうなぁ〜
と思って「R リスト 追記」とかで調べてしまった・・・

そしたら

list_sim = list()

# n_simがシミュレーション回数
for (i_sim in 1:n_sim){
 
 # ここでなんか計算する
 ....
 # 計算結果をベクトルに追加したい
 list_sim = append(list(list_sim), result)

 とか

 list_sim = c(list(list_sim), result)

}

とか出てくるが、なんか結果が自分のほしいものとは違う・・・という罠にハマった