3 개의 공변량을 사용하는 MSM (Multistage Markov) 모델을 장착했습니다. 나는 주요한 인자가 MSM 모델과 공변량의 값에 맞는 함수를 적용하려고 노력하고있다. 이 기능은 다음과 같습니다중첩 된 for-loop 출력을 벡터에 결합
이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 (아래 참조)의 공변량 조합과 함께 제공하는 값입니다. 나는 48 벡터를 얻을 기대하고있어 내 기능에서 루프 모두와
[1] 0.06140559 0.01609661 0.04502546 0.04801757 0.118968868 0.029152476 0.003356196
(7 개 값 이전에 유사한 모두) grossTon (12 개 값)와 액티브의 모든 조합의 결과를 (4 개 값), 마지막으로 모든 것을 단일 벡터 (336 개의 값, 7 * 12 * 4)로 결합합니다. 내 벡터를 생성하는 i와 j에 대처하는 방법을 모르는
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)
:
이
내 기능입니다. 내가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
]됩니다 내가 estim[c(i,j)]
및
error in `[<-.data.frame`(`*tmp*`, c(i, j), value = c(0.0614055886960195, :
new columns would leave holes after existing columns
outp[c(i,j)]<-c(estim[c(i,j)])
를 작성할 때 다음과 같은 오류가 그리고이 다른거야.
라파엘 (Rafael), 질문을 시작하는 것이 좋지만 함수가 생성해야하는 벡터에 대한 정보를 더 추가 할 수 있습니까? 그리고 현재 코드에서 어떤 종류의 오류가 발생합니까? – Dinre
잘하면 지금은 분명하다. – Rafael