GNU R
The GNU R programming language is often paired with posit's RStudio Desktop IDE and a suit of libraries (language packages) known as tidyverse (includes dplyr and ggplot2). 
You can also find a web interface to Rstudio on rhea (also Remote Access).
Tutorials contains additional resources.
See
- R Issues for log of debugged problems.
- R versions for using specific older versions
Notes
na.action for residual
When adding module residuals back to a dataframe, you need residuals() to return the same length as the input data.frame. use lm(na.action=na.exclude).
For example,
d <- data.frame(x=c(1:4,NA),y=1:5); m <- lm(x~y,d,na.action=na.exclude); nrow(d); # 5 length(m$residuals); # 4 length(residuals(m)) # 5
This avoids the error
Error in `$<-.data.frame`(`*tmp*`, ... replacement has 237 rows, data has 348
MASS::select vs dplyr::select
If you load MASS after dplyr, select will be MASS::select not dplyr::select and you're likely to encounter hard-to-debug errors about unused arguments
Error in select … : unused arguments
solutions include
- load MASS first
- force select to bedplyr's version, or
- unload MASS if you don't need it
# load mass before dplyr to have 'select' be from dplyr
library(MASS)
library(dplyr)
# force which select (if MASS was already loaded after dplyr and overwrite the function)
select <- dplyr::select
# or unload MASS
detach("package:MASS", unload=TRUE)
# check to see
environment(select) # if "MASS", you're in for a bad time