Итеративная выборка из списка с использованием Rcpp - PullRequest
0 голосов
/ 16 октября 2018

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

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...