for loop or apply 将仿真结果保存在一个vector中?
For loop or apply to save simulation results in a vector?
我的代码用于模拟 100 次抛硬币,如果您输掉 10 美元的本金,您就会破产(即净 win/loss 在 100 次抛硬币中达到 -10,每次抛硬币都是 1 美元的赌注)。我想 运行 500 次,然后将 profit/loss 结果保存到一个向量中。我的代码主要用于一次翻转,尽管我认为这可能不是最有效的方法 - 最好添加一个 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 向量中。
是这样的吗?
flipit <- function(n) {
res <- sample(c(-1,1),n,replace=TRUE)
ifelse(any(cumsum(res)<=-10),"bust",sum(res))
}
replicate(500,flipit(100))
我的代码用于模拟 100 次抛硬币,如果您输掉 10 美元的本金,您就会破产(即净 win/loss 在 100 次抛硬币中达到 -10,每次抛硬币都是 1 美元的赌注)。我想 运行 500 次,然后将 profit/loss 结果保存到一个向量中。我的代码主要用于一次翻转,尽管我认为这可能不是最有效的方法 - 最好添加一个 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 向量中。
是这样的吗?
flipit <- function(n) {
res <- sample(c(-1,1),n,replace=TRUE)
ifelse(any(cumsum(res)<=-10),"bust",sum(res))
}
replicate(500,flipit(100))