微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

r仿真函数前循环中的错误

如何解决r仿真函数前循环中的错误

我正在尝试创建一个函数,以便可以rowwise通过一个数据帧(如@rpolicastro所建议 Run a Monte Carlo for each row of a data frame in R

我要使之起作用的代码是:

library(tidyverse)

Start.Amount <- 1
Mean <- 3
SD <- .5

#### Monte Carlo parameters ####
days.to.fourth.time <- 50 # number of days looked at

set.seed(13) # reproducible

N<-200 # number of trials

#### creates simulation data ####

sim <- function(Start.Amount,Mean,SD) {
  # make blank matrix
  monte.carlo.matrix<-matrix(nrow=days.to.fourth.time+1,ncol=N)
  # puts the start value
  for(j in 1:ncol(monte.carlo.matrix)){
    monte.carlo.matrix[1,j] <- Start.Amount  
    
    # multiples the prevIoUs value by mean and sd
    for(i in 2:nrow(monte.carlo.matrix)){
      monte.carlo.matrix[i,j]<-monte.carlo.matrix[i-1,j]*exp(rnorm(1,SD))
    }
  }
}


test <- sim(Start.Amount = Start.Amount,Mean = Mean,SD = SD)

但是,这使test成为“空(空)”对象。

代码函数之外运行时,它将返回包含模拟数据的矩阵:

  # make blank matrix
  monte.carlo.matrix<-matrix(nrow=days.to.fourth.time+1,SD))
    }
  }

我在功能上做错了什么?根据我的尝试,错误开始出现在“#puts the start value”行中。

感谢您的帮助!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。