Я подогнал многоэтапную модель Маркова (MSM), используя 3 ковариаты. Я пытаюсь применить функцию, основными аргументами которой являются подобранная модель МСМ и значения ковариат. Функция:
transition<-qmatrix.msm(MSMmod, ci="normal", covariates=list(grossTon= 10, activ=0, period=1))
Выходом этой функции являются оценочные значения:
Owning<10 Owning10-40 Owning>40 left
Owning<10 -0.18037446 0.06140559 0.00000000 0.118968868
Owning10-40 0.01609661 -0.09027454 0.04502546 0.029152476
Owning>40 0.00000000 0.04801757 -0.05137377 0.003356196
left 0.00000000 0.00000000 0.00000000 0.000000000
а меня интересуют только некоторые из них, так что с transition$estimates[c(5,2,10,7,13,14,15)]
получаю; например, значения, которые дает функция qmatrix.msm
с комбинацией ковариат GrossTon=120, active=0 и period=1 (см. ниже).
[1] 0.06140559 0.01609661 0.04502546 0.04801757 0.118968868 0.029152476 0.003356196
С обоими циклами for в моей функции я ожидаю получить 48 векторов (по 7 значений в каждом, аналогично предыдущему) в результате всех комбинаций GrosTon (12 значений) и activ (4 значения), таким образом, наконец, чтобы объединить все из них в единый вектор (336 значений, 7*12*4).
Это моя функция:
transRate<-function(period){
estim<-data.frame(matrix(rep(0,336),336,1))
for(i in seq(10,120,by=10)){
for(j in seq(0,3, by=1)){
estim[c(i,j)]<-qmatrix.msm(msm.Mult4, ci="normal", covariates=list(grossTon=i, activ=j, period=period))$estimates[c(5,2,10,7,13,14,15)]
outp[c(i,j)]<-c(estim[c(i,j)])#Here I'm trying to get my 336 values vector
}
}
grosTvect<-sort(rep(seq(10,120,by=10),28))
rate<-rep(c("q12","q21","q23","q32","q14","q24","q34"),48)
estimRate<-data.frame(grosTvect,rate,outp)
return(estimRate)
}
dataFrame<-transRate(period=1)
Я не знаю, как обращаться с i и j, чтобы получить свой вектор.
Я получаю следующую ошибку, когда пишу estim[c(i,j)]
и outp[c(i,j)]<-c(estim[c(i,j)])
error in `[<-.data.frame`(`*tmp*`, c(i, j), value = c(0.0614055886960195, :
new columns would leave holes after existing columns
И это другое, когда я пишу estim[i,j]
и outp<-estim[i,j
]
Error in `[<-.data.frame`(`*tmp*`, i, j, value = c(0.0614055886960195, :
replacement has 7 rows, data has 1
Любая помощь будет оценена.