我想使用 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 的起点。