如何解决在R中为数据框的每一行运行一个Monte Carlo
我正在尝试使用R为数据帧的每一行运行一个Monte Carlo。
library(tidyverse)
Group.ID <- c('A','B','C')
Start.Amount <- c(90.2,11.7,37.8)
Mean <- c(0.0005106365,0.0006589744,0.000444903)
SD <- c(0.01587259,0.02358892,0.02070972)
summary <- data.frame(Group.ID,Start.Amount,Mean,SD)
例如,我尝试为Group.ID A运行一个Monte Carlo,然后为Group.ID B运行另一个模拟,等等。
我正在使用以下代码运行一个Group.ID。
#### 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 ####
# make blank matrix
monte.carlo.matrix<-matrix(nrow=days.to.fourth.time,ncol=N)
# puts the start value
a <- summary[1,2]
for(j in 1:ncol(monte.carlo.matrix)){
monte.carlo.matrix[1,j] <- a
# gets mean and sd
mu <- summary[1,3]
sig <- summary[1,4]
# 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,mu,sig))
}
}
#### make simulation output table ####
MC.Results<-cbind(1:(days.to.fourth.time),monte.carlo.matrix) #makes matrix of Monte Carlo with first column "Day"
name<-str_c("Simulation ",seq(1,500)) # names the columns "Simulation #"
name<-c("Day",name) # adds a column "Day"
MC.Results<-as_tibble(MC.Results) # converts matrix to tibble
colnames(MC.Results)<-name # labels columns
在将每个MC.Result
保存为唯一标记的数据帧的同时,如何进行编码以允许每行运行一次Monte Carlo?
理想情况下,数据帧应标记为MC.Result.A
之类的东西。
感谢您的帮助!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。