我有一台M1 Macbook Pro运行OS Big Sur,刚刚尝试安装rjags
和JAGS
。我从下载了JAGShttps://sourceforge.net/projects/mcmc-jags/没有问题,并运行了install_packages("rjags")
,但当我运行library(rjags)
时,我得到了这个错误:
Loading required package: coda
Error: package or namespace load failed for ‘rjags’:
.onLoad failed in loadNamespace() for 'rjags', details:
call: dyn.load(file, DLLpath = DLLpath, ...)
error: unable to load shared object '/Users/afredston/Library/Caches/org.R-project.R/R/renv/cache/v5/R-4.1/aarch64-apple-darwin20/rjags/4-12/e8a71b3a154c8e68c152b4cfbebfdd97/rjags/libs/rjags.so':
dlopen(/Users/afredston/Library/Caches/org.R-project.R/R/renv/cache/v5/R-4.1/aarch64-apple-darwin20/rjags/4-12/e8a71b3a154c8e68c152b4cfbebfdd97/rjags/libs/rjags.so, 10): Library not loaded: /opt/R/arm64/lib/libjags.4.dylib
Referenced from: /Users/afredston/Library/Caches/org.R-project.R/R/renv/cache/v5/R-4.1/aarch64-apple-darwin20/rjags/4-12/e8a71b3a154c8e68c152b4cfbebfdd97/rjags/libs/rjags.so
Reason: image not found
我理解这意味着R不能";查找";JAGS的安装。我在这个项目中使用renv
,但即使我停用它并重新运行install_packages("rjags")
和library(rjags)
,我也会收到错误(只是文件路径不同(:
Loading required package: coda
Error: package or namespace load failed for ‘rjags’:
.onLoad failed in loadNamespace() for 'rjags', details:
call: dyn.load(file, DLLpath = DLLpath, ...)
error: unable to load shared object '/Library/Frameworks/R.framework/Versions/4.1-arm64/Resources/library/rjags/libs/rjags.so':
dlopen(/Library/Frameworks/R.framework/Versions/4.1-arm64/Resources/library/rjags/libs/rjags.so, 10): Library not loaded: /opt/R/arm64/lib/libjags.4.dylib
Referenced from: /Library/Frameworks/R.framework/Versions/4.1-arm64/Resources/library/rjags/libs/rjags.so
Reason: image not found
我是一个没有太多后端计算机专业知识的统计人员,所以我很感激帮助解决这个问题!
请参阅此处获取类似的帖子。
那么,你在苹果电脑上安装了正确版本的JAGS吗?
从本质上讲,rjags是一个R接口,它需要安装一个JAGS(您提到的后端(才能正常工作。
按照此处的说明在装有M1芯片的苹果电脑上安装JAGS。
同样来自上面的链接(来自JAGS开发团队(:
磁盘映像中提供了一个自述文件-请务必阅读。
如果您发现在安装JAGS后rjags无法加载,请确保已安装的Mavericks或El Capitan二进制文件来自CRAN的R。如果你真的需要R的雪豹版本(或者您自己编译了R(,您将不得不从源代码编译JAGS。
如果您已经按照上面的说明(以及README文件(,并且在安装这些二进制文件,请通过JAGS讨论论坛让我们知道。
PS:如果可以的话,我会发表评论,但我是新来的,没有足够的分数。