Creates a data.table
that combines the transition probability matrices
and ID variables from a tparams_transprobs
object. This is often useful for
debugging.
# S3 method for class 'tparams_transprobs'
as.data.table(x, ..., prefix = "prob_", sep = "_", long = FALSE)
A tparams_transprobs
object.
Currently unused.
Arguments passed to tpmatrix_names()
for naming
the transition probability columns. The states
argument is based on
the column names (i.e., names of the second dimension) of the $value
element of x
; if NULL
, then states are named s1
, ..., sh
where h is
the number of states. Only used if long = FALSE
.
If TRUE
, then output is returned in a longer format with
one row for each transition; if FALSE
, then each row contains an entire
flattened transition probability matrix.
The output always contains columns for the ID variables and the
transition probabilities, but the form depends on on the long
argument.
If FALSE
, then a data.table
with one row for each transition probability
matrix is returned; otherwise, the data.table
contains one row for each
transition and columns from
(the state being transitioned from) and
to
(the state being transitioned to) are added.
# Create tparams_transprobs object
hesim_dat <- hesim_data(strategies = data.frame(strategy_id = 1:2),
patients = data.frame(patient_id = 1:3))
input_data <- expand(hesim_dat, by = c("strategies", "patients"))
tpmat_id <- tpmatrix_id(input_data, n_samples = 2)
p_12 <- runif(nrow(tpmat_id), .6, .7) +
.05 * (tpmat_id$strategy_id == 2)
tpmat <- tpmatrix(
C, p_12,
0, 1
)
tprobs <- tparams_transprobs(tpmat, tpmat_id)
# Convert to data.table in "wide" format
as.data.table(tprobs)
#> sample strategy_id patient_id time_id time_start time_stop prob_s1_s1
#> <int> <int> <int> <num> <num> <num> <num>
#> 1: 1 1 1 1 0 Inf 0.3649139
#> 2: 1 1 2 1 0 Inf 0.3661345
#> 3: 1 1 3 1 0 Inf 0.3897945
#> 4: 1 2 1 1 0 Inf 0.2952595
#> 5: 1 2 2 1 0 Inf 0.2936636
#> 6: 1 2 3 1 0 Inf 0.3029685
#> 7: 2 1 1 1 0 Inf 0.3418968
#> 8: 2 1 2 1 0 Inf 0.3645832
#> 9: 2 1 3 1 0 Inf 0.3852402
#> 10: 2 2 1 1 0 Inf 0.2553074
#> 11: 2 2 2 1 0 Inf 0.2761609
#> 12: 2 2 3 1 0 Inf 0.2710729
#> prob_s1_s2 prob_s2_s1 prob_s2_s2
#> <num> <num> <num>
#> 1: 0.6350861 0 1
#> 2: 0.6338655 0 1
#> 3: 0.6102055 0 1
#> 4: 0.7047405 0 1
#> 5: 0.7063364 0 1
#> 6: 0.6970315 0 1
#> 7: 0.6581032 0 1
#> 8: 0.6354168 0 1
#> 9: 0.6147598 0 1
#> 10: 0.7446926 0 1
#> 11: 0.7238391 0 1
#> 12: 0.7289271 0 1
as.data.table(tprobs, prefix = "")
#> sample strategy_id patient_id time_id time_start time_stop s1_s1
#> <int> <int> <int> <num> <num> <num> <num>
#> 1: 1 1 1 1 0 Inf 0.3649139
#> 2: 1 1 2 1 0 Inf 0.3661345
#> 3: 1 1 3 1 0 Inf 0.3897945
#> 4: 1 2 1 1 0 Inf 0.2952595
#> 5: 1 2 2 1 0 Inf 0.2936636
#> 6: 1 2 3 1 0 Inf 0.3029685
#> 7: 2 1 1 1 0 Inf 0.3418968
#> 8: 2 1 2 1 0 Inf 0.3645832
#> 9: 2 1 3 1 0 Inf 0.3852402
#> 10: 2 2 1 1 0 Inf 0.2553074
#> 11: 2 2 2 1 0 Inf 0.2761609
#> 12: 2 2 3 1 0 Inf 0.2710729
#> s1_s2 s2_s1 s2_s2
#> <num> <num> <num>
#> 1: 0.6350861 0 1
#> 2: 0.6338655 0 1
#> 3: 0.6102055 0 1
#> 4: 0.7047405 0 1
#> 5: 0.7063364 0 1
#> 6: 0.6970315 0 1
#> 7: 0.6581032 0 1
#> 8: 0.6354168 0 1
#> 9: 0.6147598 0 1
#> 10: 0.7446926 0 1
#> 11: 0.7238391 0 1
#> 12: 0.7289271 0 1
as.data.table(tprobs, prefix = "", sep = ".")
#> sample strategy_id patient_id time_id time_start time_stop s1.s1
#> <int> <int> <int> <num> <num> <num> <num>
#> 1: 1 1 1 1 0 Inf 0.3649139
#> 2: 1 1 2 1 0 Inf 0.3661345
#> 3: 1 1 3 1 0 Inf 0.3897945
#> 4: 1 2 1 1 0 Inf 0.2952595
#> 5: 1 2 2 1 0 Inf 0.2936636
#> 6: 1 2 3 1 0 Inf 0.3029685
#> 7: 2 1 1 1 0 Inf 0.3418968
#> 8: 2 1 2 1 0 Inf 0.3645832
#> 9: 2 1 3 1 0 Inf 0.3852402
#> 10: 2 2 1 1 0 Inf 0.2553074
#> 11: 2 2 2 1 0 Inf 0.2761609
#> 12: 2 2 3 1 0 Inf 0.2710729
#> s1.s2 s2.s1 s2.s2
#> <num> <num> <num>
#> 1: 0.6350861 0 1
#> 2: 0.6338655 0 1
#> 3: 0.6102055 0 1
#> 4: 0.7047405 0 1
#> 5: 0.7063364 0 1
#> 6: 0.6970315 0 1
#> 7: 0.6581032 0 1
#> 8: 0.6354168 0 1
#> 9: 0.6147598 0 1
#> 10: 0.7446926 0 1
#> 11: 0.7238391 0 1
#> 12: 0.7289271 0 1
# Convert to data.table in "long: format
as.data.table(tprobs, long = TRUE)
#> sample strategy_id patient_id time_id time_start time_stop from to
#> <int> <int> <int> <num> <num> <num> <char> <char>
#> 1: 1 1 1 1 0 Inf s1 s1
#> 2: 1 1 1 1 0 Inf s1 s2
#> 3: 1 1 1 1 0 Inf s2 s1
#> 4: 1 1 1 1 0 Inf s2 s2
#> 5: 1 1 2 1 0 Inf s1 s1
#> 6: 1 1 2 1 0 Inf s1 s2
#> 7: 1 1 2 1 0 Inf s2 s1
#> 8: 1 1 2 1 0 Inf s2 s2
#> 9: 1 1 3 1 0 Inf s1 s1
#> 10: 1 1 3 1 0 Inf s1 s2
#> 11: 1 1 3 1 0 Inf s2 s1
#> 12: 1 1 3 1 0 Inf s2 s2
#> 13: 1 2 1 1 0 Inf s1 s1
#> 14: 1 2 1 1 0 Inf s1 s2
#> 15: 1 2 1 1 0 Inf s2 s1
#> 16: 1 2 1 1 0 Inf s2 s2
#> 17: 1 2 2 1 0 Inf s1 s1
#> 18: 1 2 2 1 0 Inf s1 s2
#> 19: 1 2 2 1 0 Inf s2 s1
#> 20: 1 2 2 1 0 Inf s2 s2
#> 21: 1 2 3 1 0 Inf s1 s1
#> 22: 1 2 3 1 0 Inf s1 s2
#> 23: 1 2 3 1 0 Inf s2 s1
#> 24: 1 2 3 1 0 Inf s2 s2
#> 25: 2 1 1 1 0 Inf s1 s1
#> 26: 2 1 1 1 0 Inf s1 s2
#> 27: 2 1 1 1 0 Inf s2 s1
#> 28: 2 1 1 1 0 Inf s2 s2
#> 29: 2 1 2 1 0 Inf s1 s1
#> 30: 2 1 2 1 0 Inf s1 s2
#> 31: 2 1 2 1 0 Inf s2 s1
#> 32: 2 1 2 1 0 Inf s2 s2
#> 33: 2 1 3 1 0 Inf s1 s1
#> 34: 2 1 3 1 0 Inf s1 s2
#> 35: 2 1 3 1 0 Inf s2 s1
#> 36: 2 1 3 1 0 Inf s2 s2
#> 37: 2 2 1 1 0 Inf s1 s1
#> 38: 2 2 1 1 0 Inf s1 s2
#> 39: 2 2 1 1 0 Inf s2 s1
#> 40: 2 2 1 1 0 Inf s2 s2
#> 41: 2 2 2 1 0 Inf s1 s1
#> 42: 2 2 2 1 0 Inf s1 s2
#> 43: 2 2 2 1 0 Inf s2 s1
#> 44: 2 2 2 1 0 Inf s2 s2
#> 45: 2 2 3 1 0 Inf s1 s1
#> 46: 2 2 3 1 0 Inf s1 s2
#> 47: 2 2 3 1 0 Inf s2 s1
#> 48: 2 2 3 1 0 Inf s2 s2
#> sample strategy_id patient_id time_id time_start time_stop from to
#> prob
#> <num>
#> 1: 0.3649139
#> 2: 0.6350861
#> 3: 0.0000000
#> 4: 1.0000000
#> 5: 0.3661345
#> 6: 0.6338655
#> 7: 0.0000000
#> 8: 1.0000000
#> 9: 0.3897945
#> 10: 0.6102055
#> 11: 0.0000000
#> 12: 1.0000000
#> 13: 0.2952595
#> 14: 0.7047405
#> 15: 0.0000000
#> 16: 1.0000000
#> 17: 0.2936636
#> 18: 0.7063364
#> 19: 0.0000000
#> 20: 1.0000000
#> 21: 0.3029685
#> 22: 0.6970315
#> 23: 0.0000000
#> 24: 1.0000000
#> 25: 0.3418968
#> 26: 0.6581032
#> 27: 0.0000000
#> 28: 1.0000000
#> 29: 0.3645832
#> 30: 0.6354168
#> 31: 0.0000000
#> 32: 1.0000000
#> 33: 0.3852402
#> 34: 0.6147598
#> 35: 0.0000000
#> 36: 1.0000000
#> 37: 0.2553074
#> 38: 0.7446926
#> 39: 0.0000000
#> 40: 1.0000000
#> 41: 0.2761609
#> 42: 0.7238391
#> 43: 0.0000000
#> 44: 1.0000000
#> 45: 0.2710729
#> 46: 0.7289271
#> 47: 0.0000000
#> 48: 1.0000000
#> prob