for循环或应用于将矢量中的模拟结果保存?

时间:2017-03-10 07:42:59

标签: r loops simulation apply

我的代码用于模拟100次硬币翻转,如果您丢失了10美元的股份,则您已经破产(即净赢/输在100翻转内达到-10,每次翻转是1美元的赌注)。我想运行500次,然后将盈利/亏损结果保存到一个向量中。我的代码主要用于一次翻转,虽然我认为它可能不是最有效的方式 - 最好是添加for循环还是应用?

n=100
total.profit=c()
game.cashflow = cumsum(2*rbinom(n,1,prob=0.5)-1)
  if(length(game.cashflow[game.cashflow==-10])>0){
    game.profit=-10}else{
      game.profit=game.cashflow[1000]}

我想将结果保存在total.profit向量中。

1 个答案:

答案 0 :(得分:2)

这样的东西?

flipit <- function(n) {
    res <- sample(c(-1,1),n,replace=TRUE)
    ifelse(any(cumsum(res)<=-10),"bust",sum(res))
}

replicate(500,flipit(100))