Итак, у меня есть следующая проблема.Приведенный ниже код, использующий текущее значение вектора состояния, выполняет некоторую итеративную выборку из списка 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], ])
}