繰り返し処理~ランダム試行から度数
・rbinom、rhyper関数はランダムな発生数を羅列する.繰り返し処理を練習するため度数を求めてみる.
■
rbinomは、2,4,3,2,…のような数がn個;シミュ回数分生成される.
rbinom(1000,16,0.1875)
xという点での度数は、x+1以下の累計個数とx以下の累計個数の差になる.
また、度数が幅広くなりがちで、自動化したい.
度数分布は、ベクトルにして保存するため結果を逐次、saveする.
おく.
hyper関数を例にする.
■ script
dehy<-NULL #掃除
dhh <-NULL # indi def
datadh<-NULL
# 関数
dehy <- function(n){ # 関数の中で繰り返す
for (i in 1:n) { # 変数iを 1 から n まで繰り返す
dhh[i] <-sum(rhyper(1000,41,43,55)
print(dhh) # 途中経過を見せる
datadh<-dhh # ベクトルに順次、入れておく
write.csv(datadh,"datahyps.csv")
} } # 消えないうちに保存する
dehy( ) # xの段階数を入力促す
# 35を指定すると 20-35 あたりに 山 ができる
--
実行すると、パラメータの入力を促す
dehy() が表示されるので、数値を入れる.
■ 結果
--読み出し
datahyp= read.csv(file.choose())
datahyp[,2] # 度数
--度数
datahyp[,2] #
[1] 0 0 0 0 0 0 0 0 0 0 0 0 0 0
[15] 0 0 0 0 0 1 1 18 50 86 141 157 160 157
[29] 68 49 34 10 2 0 1
--
最大は、datahyp[27,2] の 160.
plot(datahyp,type="s")をみる.
シミュ回数1000は少ないのでグラフがいびつ.
観察発生は37だったので、単純な”袋から取り出し”予想より、曝露発生の効果は極めて高い.
* 関数内の処理として
print(~ ) # 途中経過を見せる
を入れてあり、
のような出力(一例).