官方网址:
1) https://mc-stan.org/users/interfaces/(Stan首页)
2) https://github.com/stan-dev/rstan/wiki/RStan-Getting-Started(界面如下:可以按照安装步骤一步一步进行)
步骤一:下Rtools(Win系统):
Rtools用于编译C++文件。
下载链接:
https://cran.r-project.org/bin/windows/Rtools/rtools43/rtools.html(可能需要连外网才能进去,没试WiFi因为很慢)
或者参考知乎,使用清华镜像网址进行下载:(知乎链接)https://zhuanlan.zhihu.com/p/346947595(清华下载链接)https://mirrors.tuna.tsinghua.edu.cn/CRAN/bin/windows/Rtools/
下载完毕需要安装,会提示文件不安全,忽略。安装时,与R GUI安装在一个磁盘(可能也不一定,但尝试与Rstudio安装在同一磁盘时,Rstudio显示我并没下载Rtools。最好是三者都放一起,我是因为内存不够了才分开)。我的R GUI版本是4.3.1,所以我安装了rtools43。
安装好后在Rstudio输入
install.packages("jsonlite", type = "source")
检查是否安装成功。如果输出很多内容并且没有报错,也没有显示没安装rtools,即表示成功!(这一步如果显示Rtools不存在,可以尝试重启电脑,再验证是否安装成功。)
(成功的界面)
步骤二:下Rstan:
Rstan用于统计建模。
如果之前没下过,在Rstudio输入
install.packages("rstan", repos = "https://cloud.r-project.org/", dependencies = TRUE)
这一行代码,运行。否则,先输入
remove.packages("rstan")
if(file.exists(".RData")) file.remove(".RData")
将原来版本删除。
我在这一环节出现好多问题:
1是报错,并提示尝试删除D:\R-4.3.1\library\00LOCK文件。这里需要找到该文件,并手动删除。
2是rstan的依赖包都能下载成功,唯独rstan下载不了,显示下载了又移除了,然后存在不该存在的一个临时文件夹中。这一问题的出现,直接让我卸载掉了Rstudio,又重新安装了一个,不过这次安装在另一个磁盘,因为原来的内存不多了。用新下的Rstudio重新运行这一行代码,rstan是安装成功了,rtools又显示没安装!!!于是删掉原来的rtools,按原步骤重来了一次。这次都能成功了。
3我一开始输入的是官网给出的
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)
这两行代码,后来发现第一行没太有必要,反而可能出现问题?(不是特别确定。总之可以多尝试。)
步骤三:验证Rstan安装成功:
输入
example(stan_model, package = "rstan", run.dontrun = TRUE)
结果出现R Session Aborted的问题,如图:
无奈之下,把R GUI和Rtools又卸载掉,重新下回,并与Rsudio安装在同一磁盘。重新验证Rtools是否安装成功,又显示Rtools不存在。准备把Rtools删掉,重新下载(胡乱猜测是安装顺序的问题),但是卸载时显示Rtools被占用,但我已经把该关的都关了。无奈重启电脑。然后继续删,继续下。再验证,还不行,然后重启电脑,再验证,居然又行了?!(所以猜测安好Rtools后要重启电脑。)之后开始验证rstan。好在,终于成功了!!!(开始不行时或许是有包冲突或版本不合适的问题,所以重下R GUI,之前有的包就没有了。)
(连发三图,分享喜悦)
总结:
处理bug心得总结:
1) 安装完Rtools之后重启电脑,再检验其是否安装成功。如果不行,尝试下面的2和3,再进行该步骤。
2) 把R GUI、Rstudio、Rtools放在同一磁盘下。
3) 按R GUI→Rstudio→Rtools顺序下载并安装。
科研心得体会:
上述操作从上午十点左右一直进行到下午四点半,最后rstan加载成功,忍不住感叹一句谢天谢地,不过心里还是默默对自己的姻缘进行了诅咒,希望不要灵验(笑哭)。像今天这样的经历,应该是每个科研人都会经历的了——废寝忘食琢磨将一个小问题克服!然后品尝自己解决Bug之后成功带来的短暂喜悦,之后忍不住记录并分享这段经历与感受。最后,希望每一位科研人都能顺利解决想要解决的霸哥!!!