这是“用R分析棒球数据”的第9章,试图模拟在半局中得分的比赛;
simulate<-function(P,R,start=1){
s<-start; path<-NULL; runs<-0
while(s<25){
s.new<-sample(1:25, 1, prob=P[s, ])
path<-c(path, s.new)
runs<-runs + R[s, s.new]
s<-s.new
}
runs
}
这与本书中的代码完全相同。当我尝试使用以下代码运行它时,我收到以下错误;
RUNS&LT; -replicate(10000,模拟(tmatrix,R))
sample.int中的错误(长度(x),大小,替换,概率): 不正确的概率数
在Rstudio中单击“rerun with debug”指出以下行;
s.new<-sample(1:25, 1, prob=P[s, ])
这是唯一有意义的事情,因为它有概率数量的问题。关于如何改变它的任何想法?
答案 0 :(得分:0)
在您的代码中,s
取1到25之间的任何值 - sample(1:25, ....
因此,为了使P[s,]
起作用,它需要(至少)25行。您将此矩阵传递给simulate
函数。因此,检查它的尺寸
dim(tmatrix)