本人科研萌新一枚,近期因为学习了一本McElreath 2020. Statistical Rethinking, 2nd edition, CRC Press ,需要使用到 R 语言的rethinking 包进行学习。但是在内网上苦苦搜寻了2h+,只找到了2~3篇有关的博客。由于博客中的信息有些因为英翻汉 而有所损失,因此折腾了好长的时间才最终成功的安装了rethinking包。希望后来的朋友不要因为这种小破事,白白浪费时间,因此写这篇博客。
一、首先是 R 语言环境的安装,(截至2022年11月15日),本人建议安装 R 语言的,4.0版本(我是4.0.0)。不建议安装较高的版本如4.2.2,之前使用这个版本安装时,总是出现 “退出狀態的值不是0” 的报错,百度了一下说是版本不太匹配。因此,目前还是建议4.0版本。直接通过清华镜像下载就行,链接如下:
The Comprehensive R Archive Network (tsinghua.edu.cn)
二、R-studio的下载安装,建议R-studio版本直接最新,对我们rethinking包的安装没有影响,但是R-studio版本太低可能会影响(官方文档中提及)。R-studio可以之间在官网或者是软件管家下载。
三、RTools 下载安装
rtools的版本也建议要和 R 的版本相对应(这是在其他博主那边看到的)。如果你和我一样使用的是 R 4.0.0,建议使用rtools4.0
下载官网:
RTools: Toolchains for building R and R packages from source on Windows (r-project.org)
安装后启动R写入:(环境配置)-->(这里是借鉴的其他博主)
writeLines( ' PATH="${RTOOLS40_HOME} \\ usr \\ bin;${PATH}" ' , con = " ~/.Renviron " )
然后重新启动 R 并验证是否通过以下方式找到 RTools(若输出为空则配置失败):
Sys.which( " make " )
## "C:\\rtools40\\usr\\bin\\make.exe"
然后就可以下一些资源包了,比如
install.packages("jsonlite", type = "source")
验证结果一直为空,大概是路径的问题,可选择直接用R创建文件并打开。
file.edit('~/.Renviron')
四、下载安装Rstan
目前,Rstan 发布的最新版本是 2.21.1 ,已有但未发布的是2.26.x (unreleased)
如果想安装2.26.x
# run the next line if you already have rstan installed
# remove.packages(c("StanHeaders", "rstan"))
install.packages("rstan", repos = c("https://mc-stan.org/r-packages/", getOption("repos")))
这里建议安装2.21.1,毕竟安装成功了。
首先建议通过以下方式删除任何现有的 RStan
remove.packages("rstan")
if (file.exists(".RData")) file.remove(".RData")
然后打开 R ,输入以下代码进行下载
Sys.setenv(DOWNLOAD_STATIC_LIBV8 = 1) # only necessary for Linux without the nodejs library / headers
install.packages("rstan", repos = "https://cloud.r-project.org/", dependencies = TRUE)
下载完成后,需要进行验证是否安装成功:
example(stan_model, package = "rstan", run.dontrun = TRUE)
如果出现如下信息,则安装有效
Warning message:
In system(paste(CXX, ARGS), ignore.stdout = TRUE, ignore.stderr = TRUE) :
'C:/rtools40/usr/mingw_/bin/g++' not found
如果是下面这部分,则说明安装出错了(本人在这块跌倒过好多次,最后是把版本之类的更换后,才成功)
Error in compileCode(f, code, language = language, verbose = verbose) :
C:/rtools40/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/Program Files/R/R-4.0.3/library/rstan/lib/x64/libStanServices.a(stan_fit.o):stan_fit.cpp:(.rdata$_ZZN5boost4math6detail9bessel_j0IeEET_S3_E2P1[_ZZN5boost4math6detail9bessel_j0IeEET_S3_E2P1]+0x0): multiple definition of `boost::math::detail::bessel_j0<long double>(long double)::P1'; file1da012a9cf.o:file1da012a9cf.cpp:(.data$_ZZN5boost4math6detail9bessel_j0IeEET_S3_E2P1[_ZZN5boost4math6detail9bessel_j0IeEET_S3_E2P1]+0x0): first defined hereC:/rtools40/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/8.3.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:/Program Files/R/R-4.0.3/library/rstan/lib/x64/libStanServices.a(stan_fit.o):stan_fit.cpp:(.rdata$_ZZN5boost4math6detail9bessel_j0IeEET_S3_E2QC[_ZZN5boost4math6detail9bessel_j0IeEET_S3_E2QC]+0x0): multiple definition of `boost::math::detail::bessel_j0<long double>(long double)::QC'; file1da012a9cf.o:file1da012a9cf.cpp:(.data$_ZZN5boos
需要重新启动 R 并从源代码重新安装 rstan 和 StanHeaders:(如果版本不匹配,可能也没用)
# Compile packages using all cores
Sys.setenv(MAKEFLAGS = paste0("-j",parallel::detectCores()))
install.packages(c("StanHeaders","rstan"),type="source")
ps: 如果之前有其他版本的Rstan,可以通过以下方式删除(不想写了,直接截来官网的图)
五、安装cmdstanr
安装cmdstanr
包,需要运行一下代码
请注意!!!要挂梯子才行!!不然一定会报错
# we recommend running this is a fresh R session or restarting your current session
install.packages("cmdstanr", repos = c("https://mc-stan.org/r-packages/", getOption("repos")))
此外,官网还给出了从 GITHUB 上下载的一种方法
# install.packages("remotes")
remotes::install_github("stan-dev/cmdstanr")
六,最后一步,安装rethinking
install.packages(c("coda","mvtnorm","devtools","loo","dagitty","shape"))
devtools::install_github("rmcelreath/rethinking")
如果只想完成课程(我学的书)的前半部分,而不用考虑 MCMC 和 Stan 安装,你可以安装rethinking 包的 slim 版本。
install.packages(c("coda","mvtnorm","devtools","loo","dagitty"))
devtools::install_github("rmcelreath/rethinking@slim")
检验是否安装成功,可输入如下代码
growth <- replicate( 10000 , prod( 1 + runif(12,0,0.1) ) )
dens( growth , norm.comp=TRUE )
如果没有报错并输出如下结果,则安装成功:
参考博客:R语言的rthinking安装(windows)_Kudou_Kaito的博客-CSDN博客_.renviron
参考博客: R包rethinking的介绍_漫漫求索0910的博客-CSDN博客
参考网址:https://github.com/rmcelreath/rethinking
参考网址:RStan Getting Started · stan-dev/rstan Wiki · GitHub
参考网址:R Interface to CmdStan • cmdstanr
参考网址:Configuring C Toolchain for Windows · stan-dev/rstan Wiki · GitHub