Running RStudio via Docker in the Cloud
Deploying applications via Docker container is the current talk of town. I have heard about Docker and played around with it a little, but when Dirk Eddelbuettel posted his R and Docker talk last Friday I got really excited and had to have a go myself.My aim was to rent some resources in the cloud, pull an RStudio Server container and run RStudio in a browser. It was actually surprisingly simple to get started.
I chose Digital Ocean as my cloud provider. They have many Linux systems to choose from and also a pre-built Docker system.
After about a minute I had kicked off the Docker droplet I could log into the system in a browser window and start pulling the Docker file, e.g. Dirk's container.
Once the downloads finished I could start the RStudio Server using the
docker run
command and log into a RStudio session. To my surprise even my googleVis package worked out of the box. The plot command opened just another browser window to display the chart; here the output of the WorldBank
demo.All of this was done within minutes in a browser window. I didn't even use a terminal window. So, that's how you run R on an iPad. Considering that the cost for the server was $0.015 per hour, I wonder why I should buy my own server, or indeed buy a new computer.
Managing R package dependencies
One of my take aways from last week's EARL conference was that R is more and more growing out of its academic roots into the enterprise. And with that come some challenges, e.g. how do I ensure consistent and systematic access to a set of R packages in an organisation, in particular when one team is providing packages to others?Two packages can help here: roxyPackage and miniCRAN.
I wrote about roxyPackage earlier on this blog. It allows me to create a local repository to distribute my package, while at the same time execute and control the build process from within R. But what about my package's dependencies? Here miniCRAN helps. miniCRAN is a new package by Andrie de Vries that enables me to find and download all package dependencies and store them in a local repository, e.g. the one used by roxyPackage.
For more details about roxyPackage and miniCRAN read the respective package vignettes.
Example
To create a local sub-CRAN repository for the two packages I maintain on CRAN and with all their dependencies I use:library("miniCRAN")
my.pkgs <- c("googleVis", "ChainLadder")
pkgs <- pkgDep(my.pkgs, suggests = TRUE, enhances=FALSE)
makeRepo(pkgs = pkgs, path="/Users/Shared/myCRANRepos")
And to visualise the dependencies:dg <- makeDepGraph(my.pkgs, includeBasePkgs=FALSE,
suggests=TRUE, enhances=TRUE)
set.seed(1)
plot(dg, legendPosEdge = c(-1, 1),
legendPosVertex = c(1, 1), vertex.size=20)
What a surprise! In total I end up with 42 packages from CRAN and I didn't expect any connection between the ChainLadder and googleVis package.
Bonus tip
Don't miss out on Pat Burns's insightful talk about effective risk management from EARL. His thoughts reminded me of the great Karl Popper: Good tests kill flawed theories; we remain alive to guess again.Session Info
R version 3.1.1 (2014-07-10)
Platform: x86_64-apple-darwin13.1.0 (64-bit)
locale:
[1] en_GB.UTF-8/en_GB.UTF-8/en_GB.UTF-8/C/en_GB.UTF-8/en_GB.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods
[7] base
other attached packages:
[1] miniCRAN_0.1-0
loaded via a namespace (and not attached):
[1] httr_0.5 igraph_0.7.1 stringr_0.6.2 tools_3.1.1
[5] XML_3.98-1.1
Notes from the Kölner R meeting, 12 September 2014
Last Friday we had guests from Belgium and the Netherlands joining us in Cologne. Maarten-Jan Kallen from BeDataDriven came from The Hague to introduce us to Renjin, and the guys from DataCamp in Leuven, namely Jonathan, Martijn and Dieter, gave an overview of their new online interactive training platform.Next Kölner R User Meeting: Friday, 12 September 2014
The next Cologne R user group meeting is scheduled for this Friday, 12 September 2014.
We have a great agenda with international speakers:
- Maarten-Jan Kallen: Introduction to Renjin, the R interpreter for the JVM
- Jonathan Cornelissen, Martijn Theuwissen: DataCamp - An online interactive learning platform for R
11 comments :
Post a Comment