Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Installing RStan on Windows
Installing RStan on Mac or Linux. If you are using Windows >= 10 but trying to install RStan inside Windows Subsystem for Linux (WSL), then you should instead use the aforementioned link / instructions for Linux.This page contains instructions for installing RStan for Windows users only. Mac and Linux users should consult the separate instructions at
R version 3.4.0 or later is required, which is available from
Follow the download link, then choose a mirror (we recommend https://cloud.r-project.org/ because it redirects to the closest reliable mirror), then click on the link for Windows. On the next page select the link to the "base" package.
Although it is not required, for most users we strongly recommend installing RStudio which has basic support for .stan file types and syntax highlighting for Stan 2.10.0 and higher (if using RStudio version >= 0.99.1259).
Rtools provides a toolchain for Windows that works well with R. It mainly includes GNU make, GNU gcc, and other utilities commonly used on UNIX-ish platforms.
You can download Rtools from http://cran.r-project.org/bin/windows/Rtools/. Choose the most recent "frozen" version that supports the version of R you have installed. If you have more than one version of R, it is possible to have more than one version of Rtools, but you may have to adjust some environmental variables to compile a Stan program.
When installing version of Rtools you downloaded, pay careful attention during the step where
you can edit the system
PATH. As shown in the image below, check the box for this
option (you don't need to type anything, just check the box). This will allow the C++
compiler included in Rtools to be used by R.
Verify that Rtools can be used in R
Close your current R session.
Open a new R session.
Sys.getenv("PATH")and check that Rtools is included in system
PATH. If Rtools is installed to
c:\\Rtoolsthen you should see something like this:
> Sys.getenv('PATH')  "c:\\\\Rtools\\\\bin;...
If Rtools is installed to
c:\\Rtools (or in some cases
C:\RBuildTools...) and these
do not appear you should make sure you followed the instructions in the Install Rtools
section above. If you followed the instructions without success one option is to remove and reinstall Rtools
and another option is to edit system
PATH manually (or using some other tool). For simplicity,
we suggest removing and reinstalling Rtools and make sure
PATH is edited (by checking the box as described
above) during the installation.
- Check that
g++can be called from R. For example, we can see the version of gcc in R as follows.
> system('g++ -v') Using built-in specs. COLLECT_GCC=c:\RBUILD~1\3.4\mingw_64\bin\G__~1.EXE COLLECT_LTO_WRAPPER=c:/RBUILD~1/3.4/mingw_64/bin/../libexec/gcc/x86_64-w64-mingw32/4.9.3/lto-wrapper.exe Target: x86_64-w64-mingw32 Configured with: ... Thread model: posix gcc version 4.9.3 (x86_64-posix-seh, Built by MinGW-W64 project) > system('where make') c:\Rtools\bin\make.exe
If you do not see any output from the system call, remove and reinstall Rtools as above.
You need to execute the following once. Depending on where Rtools is installed, you need to execute one and only one of the following two commands. If Rtools is installed in
cat('Sys.setenv(BINPREF = "C:/Rtools/mingw_$(WIN)/bin/")', file = file.path(Sys.getenv("HOME"), ".Rprofile"), sep = "\n", append = TRUE)
If Rtools is installed in
C:\RBuildTools... then this command is (note that you may have to adjust if version numbers are nested, e.g 3.4 is installed under
cat('Sys.setenv(BINPREF = "C:/RBuildTools/3.4/mingw_$(WIN)/bin/")', file = file.path(Sys.getenv("HOME"), ".Rprofile"), sep = "\n", append = TRUE)
This subsection is optional in the sense that RStan should work without it. Nevertheless, the following is recommended to obtain maximum performance when using RStan.
If you do not already have one, create a personal Makevars file as described at https://cran.r-project.org/doc/manuals/r-release/R-admin.html#Customizing-package-compilation. Edit the Makevars file to include the following line:
CXXFLAGS=-O3 -Wno-unused-variable -Wno-unused-function
Be advised that setting the optimization level to 3 (CXXFLAGS=-O3) may prevent some other R packages from installing from source if they are only tested with the stock R configuration.
The code below should work to create or edit this file programmatically from R:
dotR <- file.path(Sys.getenv("HOME"), ".R") if (!file.exists(dotR)) dir.create(dotR) M <- file.path(dotR, "Makevars") if (!file.exists(M)) file.create(M) cat("\nCXXFLAGS=-O3 -Wno-unused-variable -Wno-unused-function", file = M, sep = "\n", append = TRUE)
You're finally ready to install RStan!
You can install RStan by following these steps in order:
Open R (either the R GUI, in the terminal using command R, or by opening the recommended RStudio application).
Install the latest version of RStan and the packages it depends on and suggests from CRAN exactly like this:
install.packages("rstan", repos = "https://cloud.r-project.org/", dependencies=TRUE)
Make sure not to omit
- If all else fails you can try to install the rstan package from source via
# note: replace the '4' with the number of cores you want to devote to the build Sys.setenv(MAKEFLAGS = "-j4") install.packages("rstan", type = "source")
Restart R after the installation but do not load the rstan package. Verify that no objects created by an older version of RStan are (perhaps auto-)loaded into R .
Verify that your toolchain works by executing the code below in R and checking that it returns the value
fx <- inline::cxxfunction( signature(x = "integer", y = "numeric" ) , ' return ScalarReal( INTEGER(x) * REAL(y) ) ; ' ) fx( 2L, 5 ) # should be 10
- Proceed to How to Use RStan