首页 > 解决方案 > 无法在 CRAN solaris 机器中复制错误

问题描述

我在 CRAN 上有一个名为“metapack”的包,并收到了 Ripley 教授的消息,必须解决该错误才能将包安全地保留在 CRAN 中。我在 GitHub 上的 R-CMD-check 中遇到了这个错误,但无法在我的任何本地机器上复制它以挽救我的生命。可重现的代码片段如下(我使用 Rcpp/RcppArmadillo):

library(metapack)
data("cholesterol")
Outcome <- model.matrix(~ pldlc + phdlc + ptg, data = cholesterol)
SD <- model.matrix(~ sdldl + sdhdl + sdtg, data = cholesterol)
Trial <- cholesterol$Trial
Treat <- cholesterol$trt
Npt <- cholesterol$Npt
XCovariate <- model.matrix(~ 0 + bldlc + bhdlc + btg + age + durat + white + male + dm, data = cholesterol)
WCovariate <- model.matrix(~ trt, data = cholesterol)

fmodel <- 1
set.seed(2797542)
fit <- bayes.parobs(Outcome, SD, XCovariate, WCovariate, Treat, Trial,
  Npt, fmodel, mcmc = list(ndiscard = 1, nskip = 1, nkeep = 1),
  scale_x = TRUE, group = cholesterol$onstat, verbose = FALSE)

这给了我以下错误:

warning: chol(): given matrix is not symmetric  
error: chol(): decomposition failed

这不可能是真的,因为(1)它在其他机器上运行没有问题,(2)每个被 Cholesky 分解的矩阵都保证是对称的Sig = 0.5 * (Sig + Sig.t());。即使 withSig = arma::symmatu(Sig)似乎也不能保证对称性。

有没有人遇到过类似的事情?

标签: c++rrcpparmadillorcpparmadillo

解决方案


推荐阅读