R包mstate:贡献程序transMat()中的错误

时间:2020-09-21 03:01:40

标签: r package

我在mstate程序包的贡献函数transMat()中遇到了一个错误。我正在处理四个状态的问题:

  1. 状态1:患者进行胰岛移植
  2. 状态2:患者可能会变得不依赖胰岛素​​
  3. 状态3:成为胰岛素的患者失去胰岛素独立性,但仍保留一些胰岛素输出。一旦处于这种状态,就不可能返回到非胰岛素依赖状态(在我的问题范围内)。
  4. 状态4:患者可以从以上三个状态中的任意一个状态完成移植的排斥反应。

所以可能的过渡是:

从状态1:到状态2或状态4。(您不能失去 除非您实现了胰岛素独立性,否则
2.从状态2:到状态3或4.
3.从状态3:仅到状态4。
4.状态4是“吸收状态”。没有进一步的可能过渡(同样,在我的分析范围内)。

可以如下编程:

tmat4a <- matrix(NA, 4,4)
tmat4a[1, c(2, 4)] <- c(1, 3)
tmat4a[2, c(3, 4)] <- c(3, 4)
tmat4a[3, 4] <- 4
dimnames(tmat4a) <- list(from = c('Tx', 'II', 'failII', 'fail'), to = c('Tx', 'II', 'failII', 'fail'))
> tmat4a
        to
from     Tx II failII fail
  Tx     NA  1     NA    3
  II     NA NA      3    4
  failII NA NA     NA    4
  fail   NA NA     NA   NA

下面的代码应该给出相同的答案:

tmat4 <- transMat(x = list(c(2, 4), c(3, 4), c(4), c()), 
                  names = c('Tx', 'II', 'failII', 'fail'))

不幸的是,它给出了错误的矩阵:

> tmat4
        to
from     Tx II failII fail
  Tx     NA  1     NA    2
  II     NA NA      3    4
  failII NA NA     NA    5
  fail   NA NA     NA   NA

请注意5,而不是[3,4]中的4。可能的过渡并不总是顺序的。有时,两个先前的级别可以转换为相同的后续状态。 拉里·汉斯克

0 个答案:

没有答案