2017-03-10 13 views
0

私は100のコイントスをシミュレートするスクリプトを書こうとします。成功する確率、開始資本と一定の資本金でゲームを止めます')。成功の確率を返します。コードは機能しますが、エラーメッセージが返されます。誰かが私を助けてくれますか?前もって感謝します!置き換えられるアイテムのRエラー数が置換の長さの倍数ではありません

spins=100 
SuccessVector=c() 
ProbSuccess<-function(p, capital, l){ 
for(i in 1:spins){ 
cap=rep(capital,spins) 
while(cap[i]>0 & cap[i]<l){ 
cap[i]=cap[i]+sample(c(-1,1), replace = TRUE, prob= c(1-p,p)) 
if(cap[i]==l){SuccessVector[i]=1} 
else(SuccessVector[i]=0) 
} 
} 
successes=length(SuccessVector[SuccessVector==1])/length(SuccessVector) 
return(successes) 
} 
ProbSuccess(0.5,10,20) 

50の以上の警告

警告()

警告メッセージ(使用警告()が最初の50を参照すること)があった: 1:キャップ内の[I] =キャップ[I] +サンプル(C(-1、1)、交換= TRUE、...: 交換するアイテムの数のスペア長さの複数

答えて

1

ありませんサンプルのヘルプ():

「試料についてそのサンプル(x)はランダムxの要素の順列 (又は1を生成するように、サイズのデフォルトは、 最初の引数から推論項目の数であります:x)が「

あなたはサイズ2のサンプルを取得し、なぜあなたが使用したい場合があります:。

cap[i]=cap[i]+sample(c(-1,1), size=1 , replace = TRUE, prob= c(1-p,p)) 
ああ
+0

はい、あなたが正しいです!あなたは私のアップヴォートを持っています。 – Cardinal

+0

心配はいりません。また、あなたの質問に最も役立つ回答を受け入れることを検討してください(stackoverflow.com/help/someone-answersを参照)。 –

関連する問題