Rcpp を使用して一部の R コードの速度を改善したいと考えています。ただし、C++ に関する私の知識はほとんどありません。そこで、Rcpp で提供されているドキュメントと、Dirk Eddelbuttel のサイトで提供されているその他のドキュメントを確認しました。すべてを読んだ後、R で書いた単純なループを実行しようとしましたが、残念ながら実行できませんでした。R関数は次のとおりです。
Inverse Wishart
beta = matrix(rnorm(15),ncol=3)
a = rnorm(3)
InW = function(beta,a) {
n = nrow(beta)
p = ncol(beta)
I = diag(rep(1,times = p))
H = matrix(0,nrow=p,ncol=p)
for(i in 1:n){
subBi = beta[i,]
H = H + tcrossprod(a - subBi)
}
H = H + p * I
T = t(chol(chol2inv(chol(H))))
S = 0
for(i in 1:(n+p)){
u <- rnorm(p)
S = S + tcrossprod(T %*% u)
}
D = chol2inv(chol((S)))
ans = list(Dinv = S,D=D)
}
Rcppの学習の出発点として役立つので、誰かが私を助けてくれれば本当に感謝しています.