健康経済の問題を解決するために、R でプログラムされた行列を含むマルコフ モデルを使用しています。
200 倍したい行列があります。マトリックス内の値は時間とともに変化します。たとえば、位置 x12 の値は、最初の行列 0.1、2 番目の行列 0.2、3 番目の行列 0.3 にあります。200 の行列を書き留めるのではなく、1 つを書き留めて 200 でべき乗します。x12 の場合: 200 の値を持つベクトルを使用できますか?行列はそのベクトルを使用しますか?
定数値の場合は問題ありません。
############### Imatinib Base-line Strategy ##########################
trans_matrix_dasa_no2nd <- matrix (,nrow=3,ncol=3)
trans_matrix_dasa_no2nd[1,] <- c(0.9,0.05,0.05)
trans_matrix_dasa_no2nd[2,] <- c(0,0.8,0.2)
trans_matrix_dasa_no2nd[3,] <- c(0,0,1)
cycle_patient_distribution_dasa_no2nd <- matrix (,nrow=2,ncol=3)
for (i in 1:2){cycle_patient_distribution_dasa_no2nd[i,] <-
initial_patient_distribtion%*%(trans_matrix_dasa_no2nd%^%i)}
cycle_patient_distribution_dasa_no2nd
[,1] [,2] [,3]
[1,] 900 50 50
[2,] 810 85 105
しかし、ベクトルを使用すると、もう機能しません。
############### Imatinib Base-line Strategy ##########################
aaa <- c(0.9,0.5)
bbb <- c(0.05, 0.4)
ccc <- c(0.05, 0.1)
trans_matrix_dasa_no2nd <- matrix (,nrow=3,ncol=3)
trans_matrix_dasa_no2nd[1,] <- c(aaa,bbb,ccc)
Error in trans_matrix_dasa_no2nd[1, ] <- c(aaa, bbb, ccc) :
number of items to replace is not a multiple of replacement length
trans_matrix_dasa_no2nd[2,] <- c(0,0.8,0.2)
trans_matrix_dasa_no2nd[3,] <- c(0,0,1)
cycle_patient_distribution_dasa_no2nd <- matrix (,nrow=2,ncol=3)
for (i in 1:2){cycle_patient_distribution_dasa_no2nd[i,] <-
initial_patient_distribtion%*%(trans_matrix_dasa_no2nd%^%i)}
cycle_patient_distribution_dasa_no2nd
[,1] [,2] [,3]
[1,] NA NA NA
[2,] NA NA NA
i を行列に導入すると、結果は正しくありません。
############### Imatinib Base-line Strategy ##########################
aaa <- c(0.9,0.5)
bbb <- c(0.05, 0.4)
ccc <- c(0.05, 0.1)
trans_matrix_dasa_no2nd <- matrix (,nrow=3,ncol=3)
trans_matrix_dasa_no2nd[1,] <- c(aaa[i],bbb[i],ccc[i])
trans_matrix_dasa_no2nd[2,] <- c(0,0.8,0.2)
trans_matrix_dasa_no2nd[3,] <- c(0,0,1)
cycle_patient_distribution_dasa_no2nd <- matrix (,nrow=2,ncol=3)
for (i in 1:2){cycle_patient_distribution_dasa_no2nd[i,] <-
initial_patient_distribtion%*%(trans_matrix_dasa_no2nd%^%i)}
cycle_patient_distribution_dasa_no2nd
[,1] [,2] [,3]
[1,] 500 400 100
[2,] 250 520 230
どうすればその問題を解決できますか? どうもありがとう!