R: Неправильная ошибка числа вероятностей при запуске симуляции цепей Маркова
Это из главы 9 "Анализ данных бейсбола с помощью R", попытка смоделировать забеги, забитые в половине тайма;
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
}
это в значительной степени идентично коду в книге. Когда я пытаюсь запустить его с помощью следующего кода, я получаю следующую ошибку;
Бежит<-replicate (10000, имитации (tmatrix, R)),
Ошибка в sample.int(длина (x), размер, замена, вероятность): неверное число вероятностей
Нажатие на "rerun with debug" в Rstudio указывает на следующую строку;
s.new<-sample(1:25, 1, prob=P[s, ])
Что является единственной вещью, которая имеет здесь смысл, поскольку имеет проблему с числом вероятностей. Любые идеи о том, как это изменить?
1 ответ
В вашем коде s
принимает любое значение от 1 до 25 - sample(1:25, ....
Следовательно, для того, чтобы P[s,]
для работы нужно (как минимум) 25 рядов. Вы передаете эту матрицу simulate
функция. Следовательно, проверьте его размеры
dim(tmatrix)