I am using R on a shared server. Not having root permissions makes some things difficult. I recently started using conda, which has been working well for specific tools. Everything python-based worked for me, which makes sense considering it was developed by python users. I recently needed to use an R package that had python-based dependencies. It seemed like a great use-case for conda. Unfortunately, I keep running into problems with R.
- The most obvious is that R 3.5 is still not available (after 3 months) on either
conda-forge
orr
channels. This is not a problem for most packages, but the latest version of Bioconductor needs the latest version of R. - When R is available, it can be either the standard version or the Microsoft R. MRO is fine, but it has its own caveats. It also splits the entire community, since different conda packages depend on different R flavors.
- My original plan was to use
r-base
and just install all the packages normally (viainstall.packages()
orbiocLite()
. Unfortunately, I quickly ran into problems with packages likerJava
andrlang
which had external dependencies. I couldn't even install some mainstream packages liketidyverse
. You can install individual R packages as conda packages, but if you have several, you quickly run into dependency problems. After a few, it wanted me to downgrade to R 3.3. I should admit that the biggest problem for me was probablyhdf5r
, which is more obscure, so fewer combinations are possible. What's frustrating is that depending on the combinations, the results can be very different.
I looked around to see if there are any tutorials or suggestions. All the guides show how to install one package, which not surprisingly works fine. As soon as you try to make any customizations, errors start appearing. Am I doing it wrong or is it really this hard? Is there some community effort to improve the situation? For example, it would not be completely unreasonable if RStudio had created a "base R" package that included a clean copy of R with all the common dependencies.