所以我有以下问题。下面的代码使用状态向量的当前值,对列表M进行一些迭代采样,以确定状态向量的下一个值。该代码有效。但是,对于更大的列表M,采样过程将花费很长时间。我读到,通过使用Rcpp软件包,您可以大大加快该过程。但是,在工作了几个小时之后,我被卡住了!不仅C ++似乎没有类似的示例函数,而且C ++中的数据操作和访问不像R中那样简单。那么如何使用Rcpp包转换下面看似简单的代码?任何帮助将不胜感激!!!
state <- c(2, NA, NA, NA)
M <- list(matrix(c(0.2, 0.3, 0.5, 0.6, 0.3, 0.1, 0.1, 0.8, 0.1), nrow = 3,
ncol = 3), matrix(c(0.2, 0.3, 0.5, 0.6, 0.3, 0.1, 0.1, 0.8, 0.1),
nrow = 3, ncol = 3), matrix(c(0.2, 0.3, 0.5, 0.6, 0.3, 0.1, 0.1, 0.8,
0.1), nrow = 3, ncol = 3))
for (i in 1:3) {
state[i + 1] <- sample.int(3, size = 1, prob = M[[i]][state[i], ])
}