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)
Другие вопросы по тегам