2015-11-20

AwesomeR

Integrated Development Environments

Integrated Development Environment
  • RStudio - A powerful and productive user interface for R. Works great on Windows, Mac, and Linux.
  • Emacs + ESS - Emacs Speaks Statistics is an add-on package for emacs text editors.
  • Sublime Text + R-Box - Add-on package for Sublime Text 2/3.
  • TextMate + r.tmblundle - Add-on package for TextMate 1/2.
  • StatET - An Eclipse based IDE for R.
  • Revolution R Enterprise - Revolution R would be offered free to academic users and commercial software would focus on big data, large scale multiprocessor functionality.
  • R Commander - A package that provides a basic graphical user interface.
  • IPython - An interactive Python interpreter, and it supports execution of R code while capturing both output and figures.
  • Deducer - A Menu driven data analysis GUI with a spreadsheet like data editor.
  • Radiant - A platform-independent browser-based interface for business analytics in R, based on the Shiny.
  • Vim-R - Vim plugin for R.
  • JASP - A complete package for both Bayesian and Frequentist methods, that is familiar to users of SPSS.
  • Bio7 - A IDE contains tools for model creation, scientific image analysis and statistical analysis for ecological modelling.
Minimal functionnal packages:
install.packages(c("abind","acepack","animation","AnnotationDbi","ape","ArgumentCheck","assertthat","AzureML","backports","base","base64enc","BH","Biobase","BiocGenerics","BiocInstaller","bit","bit64","bitops","blscrapeR","bmp","bookdown","boot","brew","broom","Cairo","cairoDevice","car","caTools","checkmate","checkpoint","chron","circlize","class","classInt","cloudUtil","cluster","coda","codetools","coin","colorspace","combinat","compiler","ComplexHeatmap","countrycode","covr","cowplot","crayon","cubature","curl","d3heatmap","data.table","data.tree","datasets","DBI","dendextend","DEoptimR","devtools","df2json","DiagrammeR","dichromat","digest","diptest","doParallel","dplyr","drat","DT","dtt","dygraphs","dynamicTreeCut","e1071","ecodist","elastic","ellipse","energy","evaluate","extrafont","extrafontdb","fAssets","fastcluster","fBasics","ff","fields","flexmix","fMultivar","foreach","foreign","formatR","formattable","Formula","fpc","futile.logger","futile.options","future","gap","gdata","gdtools","genetics","GetoptLong","ggfortify","ggiraph","ggplot1","ggplot2","ggplot2movies","ggrepel","ggseas","ggthemes","ggvis","ghit","gistr","git2r","GlobalOptions","globals","GO.db","googleAuthR","gplots","graphics","grDevices","grid","gridBase","gridExtra","gss","gtable","gtools","gWidgets","gWidgetsRGtk2","hash","hashmap","hashr","haven","hexbin","highr","Hmisc","htmltools","htmlwidgets","httpuv","httr","igraph","imager","import","impute","inline","installr","IRanges","irlba","iterators","janeaustenr","jpeg","jSonarR","jsonlite","kernlab","KernSmooth","knitr","koRpus","labeling","lambda.r","lattice","latticeExtra","lazyeval","lazyWeave","LDAvis","leaflet","lintr","listenv","lme4","lmtest","log4r","logging","lubridate","magrittr","mapproj","maps","maptools","markdown","MASS","Matrix","MatrixModels","matrixStats","mclust","mcmc","MCMCpack","md","memoise","methods","metricsgraphics","mgcv","microbenchmark","micromap","micromapST","mime","miniCRAN","miniUI","minqa","misc3d","mnormt","modeltools","mongolite","mscsweblm4r","MTurkR","MTurkRGUI","multcomp","munsell","mvnormtest","mvtnorm","mxnet","networkD3","nlme","nloptr","NLP","NMF","nnet","nortest","numDeriv","openNLP","openNLPdata","openssl","packrat","pander","pandocfilters","parallel","pbkrtest","pdftools","PerformanceAnalytics","pheatmap","pipeR","pixiedust","pkgmaker","PKI","plotly","plotrix","plyr","png","prabclus","praise","preprocessCore","profvis","proxy","pryr","psych","purrr","pwr","quadprog","quantmod","quantreg","questionr","R.cache","R.devices","R.filesets","R.huge","R.methodsS3","R.oo","R.rsp","R.utils","R0","R2HTML","R2WinBUGS","R4CouchDB","R6","randomForest","rappdirs","rapport","rapportools","raster","rattle","rbokeh","RCassandra","rCharts","Rcmdr","RcmdrMisc","RColorBrewer","Rcpp","Rcpp11","RcppEigen","RCurl","readbitmap","readr","readxl","registry","relimp","ReporteRs","ReporteRsjars","reshape","reshape2","reshapeGUI","REST","RevoUtilsMath","rex","Rfacebook","rgdal","rgeos","rgl","RGtk2","RInside","rjags","rJava","rjson","RJSONIO","Rlinkedin","rlist","rmarkdown","rmdformats","rmdHelpers","rmdshower","rmongodb","Rmpi","RMySQL","RNeo4j","rngtools","robustbase","RODBC","RODBCDBI","RODBCext","roxygen2","rpart","RPostgreSQL","rredis","rsconnect","RSQLite","rstan","rstudioapi","Rttf2pt1","RUnit","rvest","rvg","rworldmap","ryouready","S4Vectors","sandwich","scales","scatterD3","seasonal","selectr","shape","shiny","showtext","showtextdb","sjmisc","slam","slidify","slidifyLibraries","sn","SnowballC","sp","spam","SparkR","SparseM","spatial","splines","stabledist","StanHeaders","stats","stats4","stringdist","stringi","stringr","SuppDists","survival","svglite","sysfonts","syuzhet","tadaatoolbox","tcltk","tcltk2","testthat","texreg","TH.data","threejs","tibble","tidyjson","tidyr","tidytext","tigris","timeDate","timeSeq","timeSeries","tm","tokenizers","tools","topicmodels","translations","trimcluster","tseries","TTR","tufte","twitteR","utils","uuid","vcd","viridis","visNetwork","whisker","withr","wordcloud","x13binary","xkcd","XML","xml2","xtable","xts","yaml","zipfR","zoo"))

Syntax

Packages change the way you use R.
  • magrittr - Let's pipe it.
  • pipeR - Multi-paradigm Pipeline Implementation.
  • lambda.r - Functional programming and simple pattern matching in R.
  • purrr - A FP package for R in the spirit of underscore.js.
install.packages(c("devtools","magrittr","pipeR","lambda.r","purrr"));

Data Manipulation

Packages for cooking data.
  • dplyr - Fast data frames manipulation and database query.
  • data.table - Fast data manipulation in a short and flexible syntax.
  • reshape2 - Flexible rearrange, reshape and aggregate data.
  • readr - A fast and friendly way to read tabular data into R.
  • haven - Improved methods to import SPSS, Stata and SAS files in R.
  • tidyr - Easily tidy data with spread and gather functions.
  • broom - Convert statistical analysis objects into tidy data frames.
  • rlist - A toolbox for non-tabular data manipulation with lists.
  • jsonlite - A robust and quick way to parse JSON files in R.
  • ff - Data structures designed to store large datasets.
  • lubridate - A set of functions to work with dates and times.
  • stringi - ICU based string processing package.
  • stringr - Consistent API for string processing, built on top of stringi.
install.packages(c("dplyr","data.table","reshape2","readr","haven","tidyr","broom","rlist","jsonlite","ff","lubridate","stringi","stringr"));

Graphic Displays

Packages for showing data.
  • ggplot2 - An implementation of the Grammar of Graphics.
  • ggfortify - A unified interface to ggplot2 popular statistical packages using one line of code.
  • lattice - A powerful and elegant high-level data visualization system.
  • rgl - 3D visualization device system for R.
  • Cairo - R graphics device using cairo graphics library for creating high-quality display output.
  • extrafont - Tools for using fonts in R graphics.
  • showtext - Enable R graphics device to show text using system fonts.
  • animation - A simple way to produce animated graphics in R, using ImageMagick.
  • misc3d - Powerful functions to deal with 3d plots, isosurfaces, etc.
  • xkcd - Use xkcd style in graphs.
  • imager - An image processing package based on CImg library to work with images and display them.
install.packages(c("ggplot2","ggfortify","lattice","rgl","Cairo","extrafont","showtext","animation","misc3d","xkcd","imager"));

HTML Widgets

Packages for interactive visualizations.
  • d3heatmap - Interactive heatmaps with D3.
  • DataTables - Displays R matrices or data frames as interactive HTML tables.
  • DiagrammeR - Create JS graph diagrams and flowcharts in R.
  • dygraphs - Charting time-series data in R.
  • formattable - Formattable Data Structures.
  • ggvis - Interactive grammar of graphics for R.
  • Leaflet - One of the most popular JavaScript libraries interactive maps.
  • MetricsGraphics - Enables easy creation of D3 scatterplots, line charts, and histograms.
  • networkD3 - D3 JavaScript Network Graphs from R.
  • scatterD3 - Interactive scatterplots with D3.
  • plotly - Interactive ggplot2 and Shiny plotting with plot.ly.
  • rCharts - Interactive JS Charts from R.
  • rbokeh - R Interface to Bokeh.
  • threejs - Interactive 3D scatter plots and globes.
install.packages(c("d3heatmap","DataTables","DiagrammeR","dygraphs","formattable","ggvis","Leaflet","MetricsGraphics","networkD3","scatterD3","plotly","rCharts","rbokeh","threejs"));

Reproducible Research

Packages for literate programming.
  • knitr - Easy dynamic report generation in R.
  • xtable - Export tables to LaTeX or HTML.
  • rapport - An R templating system.
  • rmarkdown - Dynamic documents for R.
  • slidify - Generate reproducible html5 slides from R markdown.
  • Sweave - A package designed to write LaTeX reports using R.
  • texreg - Formatting statistical models in LaTex and HTML.
  • checkpoint - Install packages from snapshots on the checkpoint server.
  • brew - Pre-compute data to enhance your report templates. Can be combined with knitr.
  • ReporteRs - An R package to generate Microsoft Word, Microsoft PowerPoint and HTML reports.
install.packages(c("knitr","xtable","rapport","rmarkdown","slidify","Sweave","texreg","checkpoint","brew","ReportRs"));

Web Technologies and Services

Packages to surf the web.
  • shiny - Easy interactive web applications with R.
  • RCurl - General network (HTTP/FTP/...) client interface for R.
  • httr - User-friendly RCurl wrapper.
  • httpuv - HTTP and WebSocket server library.
  • XML - Tools for parsing and generating XML within R.
  • rvest - Simple web scraping for R, using CSSSelect or XPath syntax.
  • OpenCPU - HTTP API for R.
  • Rfacebook - Access to Facebook API via R.
  • twitteR - Access to Twitter API via R.
  • Rlinkedin - Access to LinkedIn API via R.
install.packages(c("shiny","RCurl","httr","httpuy","XML","rvest","OpenCPU","Rfacebook","twitteR","RlinkedIn"));

Parallel Computing

Packages for parallel computing.
  • parallel - R started with release 2.14.0 which includes a new package parallel incorporating (slightly revised) copies of packages multicore and snow.
  • Rmpi - Rmpi provides an interface (wrapper) to MPI APIs. It also provides interactive R slave environment.
  • foreach - Executing the loop in parallel.
  • SparkR - R frontend for Spark.
  • DistributedR - A scalable high-performance platform from HP Vertica Analytics Team.
  • ddR - Provides distributed data structures and simplifies distributed computing in R.
install.packages(c("parallel","Rmpi","foreach","SparkR","DistributedR","ddR"));

High Performance

Packages for making R faster.
  • Rcpp - Rcpp provides a powerful API on top of R, make function in R extremely faster.
  • Rcpp11 - Rcpp11 is a complete redesign of Rcpp, targetting C++11.
  • compiler - speeding up your R code using the JIT
install.packages(c("Rcpp","Rcpp11","compiler"));

Language API

Packages for other languages.
  • rJava - Low-level R to Java interface.
  • jvmr - Integration of R, Java, and Scala.
  • rJython - R interface to Python via Jython.
  • rPython - Package allowing R to call Python.
  • runr - Run Julia and Bash from R.
  • RJulia - R package Call Julia.
  • RinRuby - a Ruby library that integrates the R interpreter in Ruby.
  • R.matlab - Read and write of MAT files together with R-to-MATLAB connectivity.
  • RcppOctave - Seamless Interface to Octave and Matlab.
  • RSPerl - A bidirectional interface for calling R from Perl and Perl from R.
  • V8 - Embedded JavaScript Engine.
  • htmlwidgets - Bring the best of JavaScript data visualization to R.
  • rpy2 - Python interface for R.

Database Management

Packages for managing data.
  • RODBC - ODBC database access for R.
  • DBI - Defines a common interface between the R and database management systems.
  • elastic - Wrapper for the Elasticsearch HTTP API
  • mongolite - Streaming Mongo Client for R
  • RMySQL - R interface to the MySQL database.
  • ROracle - OCI based Oracle database interface for R.
  • RPostgreSQL - R interface to the PostgreSQL database system.
  • RSQLite - SQLite interface for R
  • RJDBC - Provides access to databases through the JDBC interface.
  • rmongodb - R driver for MongoDB.
  • rredis - Redis client for R.
  • RCassandra - Direct interface (not Java) to the most basic functionality of Apache Cassanda.
  • RHive - R extension facilitating distributed computing via Apache Hive.
  • RNeo4j - Neo4j graph database driver.
install.packages(c("RODBC","DBI","elastic","mongolite","RMySQL","ROracle","RPostgreSQL","RSQLite","rmongodb","rredis","RCassandra","RHive","RNeo4j"));

Machine Learning

Packages for making R cleverer.
  • AnomalyDetection - AnomalyDetection R package from Twitter.
  • ahaz - Regularization for semiparametric additive hazards regression.
  • arules - Mining Association Rules and Frequent Itemsets
  • bigrf - Big Random Forests: Classification and Regression Forests for Large Data Sets
  • bigRR - Generalized Ridge Regression (with special advantage for p >> n cases)
  • bmrm - Bundle Methods for Regularized Risk Minimization Package
  • Boruta - A wrapper algorithm for all-relevant feature selection
  • BreakoutDetection - Breakout Detection via Robust E-Statistics from Twitter.
  • bst - Gradient Boosting
  • CausalImpact - Causal inference using Bayesian structural time-series models.
  • C50 - C5.0 Decision Trees and Rule-Based Models
  • caret - Classification and Regression Training
  • Clever Algorithms For Machine Learning
  • CORElearn - Classification, regression, feature evaluation and ordinal evaluation
  • CoxBoost - Cox models by likelihood based boosting for a single survival endpoint or competing risks
  • Cubist - Rule- and Instance-Based Regression Modeling
  • e1071 - Misc Functions of the Department of Statistics (e1071), TU Wien
  • earth - Multivariate Adaptive Regression Spline Models
  • elasticnet - Elastic-Net for Sparse Estimation and Sparse PCA
  • ElemStatLearn - Data sets, functions and examples from the book: "The Elements of Statistical Learning, Data Mining, Inference, and Prediction" by Trevor Hastie, Robert Tibshirani and Jerome Friedman
  • evtree - Evolutionary Learning of Globally Optimal Trees
  • FSelector - A feature selection framework, based on subset-search or feature ranking approches.
  • frbs - Fuzzy Rule-based Systems for Classification and Regression Tasks
  • GAMBoost - Generalized linear and additive models by likelihood based boosting
  • gamboostLSS - Boosting Methods for GAMLSS
  • gbm - Generalized Boosted Regression Models
  • glmnet - Lasso and elastic-net regularized generalized linear models
  • glmpath - L1 Regularization Path for Generalized Linear Models and Cox Proportional Hazards Model
  • GMMBoost - Likelihood-based Boosting for Generalized mixed models
  • grplasso - Fitting user specified models with Group Lasso penalty
  • grpreg - Regularization paths for regression models with grouped covariates
  • h2o - Deeplearning, Random forests, GBM, KMeans, PCA, GLM
  • hda - Heteroscedastic Discriminant Analysis
  • Introduction to Statistical Learning
  • ipred - Improved Predictors
  • kernlab - kernlab: Kernel-based Machine Learning Lab
  • klaR - Classification and visualization
  • kohonen - Supervised and Unsupervised Self-Organising Maps.
  • lars - Least Angle Regression, Lasso and Forward Stagewise
  • lasso2 - L1 constrained estimation aka ‘lasso’
  • LiblineaR - Linear Predictive Models Based On The Liblinear C/C++ Library
  • LogicReg - Logic Regression
  • maptree - Mapping, pruning, and graphing tree models
  • mboost - Model-Based Boosting
  • Machine Learning For Hackers
  • mvpart - Multivariate partitioning
  • MXNet - MXNet brings flexible and efficient GPU computing and state-of-art deep learning to R.
  • ncvreg - Regularization paths for SCAD- and MCP-penalized regression models
  • nnet - eed-forward Neural Networks and Multinomial Log-Linear Models
  • oblique.tree - Oblique Trees for Classification Data
  • pamr - Pam: prediction analysis for microarrays
  • party - A Laboratory for Recursive Partytioning
  • partykit - A Toolkit for Recursive Partytioning
  • penalized - L1 (lasso and fused lasso) and L2 (ridge) penalized estimation in GLMs and in the Cox model
  • penalizedLDA - Penalized classification using Fisher's linear discriminant
  • penalizedSVM - Feature Selection SVM using penalty functions
  • quantregForest - quantregForest: Quantile Regression Forests
  • randomForest - randomForest: Breiman and Cutler's random forests for classification and regression.
  • randomForestSRC - randomForestSRC: Random Forests for Survival, Regression and Classification (RF-SRC).
  • rattle - Graphical user interface for data mining in R.
  • rda - Shrunken Centroids Regularized Discriminant Analysis
  • rdetools - Relevant Dimension Estimation (RDE) in Feature Spaces
  • REEMtree - Regression Trees with Random Effects for Longitudinal (Panel) Data
  • relaxo - Relaxed Lasso
  • rgenoud - R version of GENetic Optimization Using Derivatives
  • rgp - R genetic programming framework
  • Rmalschains - Continuous Optimization using Memetic Algorithms with Local Search Chains (MA-LS-Chains) in R
  • rminer - Simpler use of data mining methods (e.g. NN and SVM) in classification and regression
  • ROCR - Visualizing the performance of scoring classifiers
  • RoughSets - Data Analysis Using Rough Set and Fuzzy Rough Set Theories
  • rpart - Recursive Partitioning and Regression Trees
  • RPMM - Recursively Partitioned Mixture Model
  • RSNNS - Neural Networks in R using the Stuttgart Neural Network Simulator (SNNS)
  • RWeka - R/Weka interface
  • RXshrink - RXshrink: Maximum Likelihood Shrinkage via Generalized Ridge or Least Angle Regression
  • sda - Shrinkage Discriminant Analysis and CAT Score Variable Selection
  • SDDA - Stepwise Diagonal Discriminant Analysis
  • SuperLearner and subsemble - Multi-algorithm ensemble learning packages.
  • svmpath - svmpath: the SVM Path algorithm
  • tgp - Bayesian treed Gaussian process models
  • tree - Classification and regression trees
  • varSelRF - Variable selection using random forests
  • xgboost - eXtreme Gradient Boosting Tree model, well known for its speed and performance.

Natural Language Processing

Packages for Natural Language Processing.
  • tm - A comprehensive text mining framework for R.
  • openNLP - Apache OpenNLP Tools Interface.
  • koRpus - An R Package for Text Analysis.
  • zipfR - Statistical models for word frequency distributions.
  • tmcn - A Text mining toolkit for international characters especially for Chinese.
  • Rwordseg - Chinese word segmentation.
  • NLP - Basic functions for Natural Language Processing.
  • LDAvis - Interactive visualization of topic models.
  • topicmodels - Topic modeling interface to the C code developed by by David M. Blei for Topic Modeling (Latent Dirichlet Allocation (LDA), and Correlated Topics Models (CTM)).
  • syuzhet - Extracts sentiment from text using three different sentiment dictionaries.
install.packages(c("tm","openNLP","koRpus","zipfR","tmcn","NLP","LDAvis","topicmodels","syuzhet"));

Bayesian

Packages for Bayesian Inference.
  • coda - Output analysis and diagnostics for MCMC.
  • mcmc - Markov Chain Monte Carlo.
  • MCMCpack - Markov chain Monte Carlo (MCMC) Package.
  • R2WinBUGS - Running WinBUGS and OpenBUGS from R / S-PLUS.
  • BRugs - R interface to the OpenBUGS MCMC software.
  • rjags - R interface to the JAGS MCMC library.
  • rstan - R interface to the Stan MCMC software.
install.packages(c("coda","mcmc","MCMCpack","R2WinBUGS","BRugs","rjags","rstan"));

Finance

Packages for dealing with money.
  • quantmod - Quantitative Financial Modelling & Trading Framework for R.
  • TTR - Functions and data to construct technical trading rules with R.
  • PerformanceAnalytics - Econometric tools for performance and risk analysis.
  • zoo - S3 Infrastructure for Regular and Irregular Time Series.
  • xts - eXtensible Time Series.
  • tseries - Time series analysis and computational finance.
  • fAssets - Analysing and Modelling Financial Assets.
install.packages(c("quantmod","TTR","PerformanceAnalytics","zoo","xts","tseries","fAssets"));

Bioinformatics

Packages for processing biological datasets.
  • Bioconductor - Tools for the analysis and comprehension of high-throughput genomic data.
  • genetics - Classes and methods for handling genetic data.
  • gap - An integrated package for genetic data analysis of both population and family data.
  • ape - Analyses of Phylogenetics and Evolution.
  • pheatmap - Pretty heatmaps made easy.
 install.packages(c("genetics","gap","ape","pheatmap"));

Network Analysis

Packages to construct, analyze and visualize network data.
  • igraph - A collection of network analysis tools.
  • network - Basic tools to manipulate relational data in R.
  • sna - Basic network measures and visualization tools.
  • networkDynamic - Support for dynamic, (inter)temporal networks.
  • ndtv - Tools to construct animated visualizations of dynamic network data in various formats.
  • statnet - The project behind many R network analysis packages.
  • ergm - Exponential random graph models in R.
  • latentnet - Latent position and cluster models for network objects.
  • tnet - Network measures for weighted, two-mode and longitudinal networks.
  • rgexf - Export network objects from R to GEXF, for manipulation with network software like Gephi or Sigma.

R Development

Packages for packages.
  • devtools - Tools to make an R developer's life easier.
  • testthat - An R package to make testing fun.
  • R6 - simpler, faster, lighter-weight alternative to R's built-in classes.
  • pryr - Make it easier to understand what's going on in R.
  • roxygen - Describe your functions in comments next to their definitions.
  • lineprof - Visualise line profiling results in R -> install.packages("profvis")
  • packrat - Make your R projects more isolated, portable, and reproducible.
  • installr - Functions for installing softwares from within R (for Windows).
  • import - An import mechanism for R.
  • Rocker - R configurations for Docker.
  • drat - Creation and use of R repositories on GitHub or other repos.
  • covr - Test coverage for your R package and (optionally) upload the results to coveralls or codecov.
  • lintr - Static code analysis for R to enforce code style.
install.packages(c("devtools","testthat","R6","pryr","roxygen","profvis","packrat","installr","import","Rocker","drat","covr","lintr"));

Logging

Packages for Logging
  • futile.logger - A logging package in R similar to log4j
  • log4r - A log4j derivative for R
  • logging - A logging package emulating the python logging package.
install.packages(c("futile.logger","log4r","logging"));

Other Interpreters

Alternative R engines.
  • renjin - a JVM-based interpreter for R.
  • pqR - a "pretty quick" implementation of R
  • fastR - FastR is an implementation of the R Language in Java atop Truffle and Graal.
  • riposte - a fast interpreter and JIT for R.
  • TERR - TIBCO Enterprise Runtime for R.
  • RRO - Revolution R Open.
  • CXXR - Refactorising R into C++.

Learning R

Packages for Learning R.
  • swirl - An interactive R tutorial directly in your R console.

Resources

Where to discover new R-esources.

Websites

  • R-project - The R Project for Statistical Computing.
  • R Bloggers - There are people scattered across the Web who blog about R. This is simply an aggregator of many of those feeds.
  • DataCamp - Learn R data analytics online.
  • Quick-R - An excellent quick reference.
  • Advanced R - An in-progress book site for Advanced R.
  • CRAN Task Views - Task Views for CRAN packages.
  • The R Programming Wikibook - A collaborative handbook for R.
  • R-users - A job board for R users (and the people who are looking to hire them)
  • R Cookbook - A problem-oriented website that supports the R Graphics Cookbook.
  • tryR - A quick course for getting started with R.

Books

  • The Art of R Programming - It's a good resource for systematically learning fundamentals such as types of objects, control statements, variable scope, classes and debugging in R.
  • Free Books - CRAN Contributed Documentation in many languages.
  • R Cookbook - A quick and simple introduction to conducting many common statistical tasks with R.
  • Books written as part of the Johns Hopkins Data Science Specialization:
  • R Packages - A book (in paper and website formats) on writing R packages.
  • R in Action - This book aims at all levels of users, with sections for beginning, intermediate and advanced R ranging from "Exploring R data structures" to running regressions and conducting factor analyses.
  • Use R! - This series of inexpensive and focused books from Springer publish shorter books aimed at practitioners. Books can discuss the use of R in a particular subject area, such as Bayesian networks, ggplot2 and Rcpp.
  • R for SAS and SPSS users - An excelllent resource for users already familiar with SAS or SPSS.
  • An Introduction to R - A very good introductory text on R, also covers some advanced topics.

Reference Cards

MOOCs

Massive open online courses.

2015-11-16

Awesome.NET

API

  • Frameworks
    • ASP.NET WebAPI - Framework that makes it easy to build HTTP services that reach a broad range of clients, including browsers and mobile devices
    • ServiceStack - Thoughtfully architected, obscenely fast, thoroughly enjoyable web services for all
  • WebAPI Contrib - Collection of open source projects to help improve your work with ASP.NET Web API

Application Frameworks

  • ASP.NET Boilerplate - A starting point for new modern ASP.NET MVC web applications with best practices and most popular tools.

Assets

  • Cassette - Manages .NET web application assets (scripts, css and templates)
  • NodeAssets - Asset Manager for .net that has live css updates using SignalR and can optionally leverage NodeJS compilers
  • Bundler - Compile & Minify Less/Sass/Stylus/Css/JS/CoffeeScript/LiveScript files. Integrates with MVC and ServiceStack
  • SquishIt - Lets you easily bundle some css and javascript

Authentication and Authorization

  • ASP.NET Identity - New membership system for ASP.NET applications
  • DotNetOpenAuth - A C# implementation of the OpenID, OAuth and InfoCard protocols
  • Thinktecture IdentityModel - Helper library for identity & access control in .NET 4.5 and MVC4/Web API.
  • OAuth - A very lightweight library for generating OAuth 1.0a signatures written in C#

Build Automation

  • Psake - .NET-based build automation tool written in PowerShell
  • FAKE - F# Make, a cross platform build automation system
  • Invoke-Build - PowerShell build and test automation tool inspired by Psake.

Caching

  • CacheCow - An ASP.NET Web API HTTP caching implementation both on client and server

CLI

  • Command Line Parser - The Command Line Parser Library offers to CLR applications a clean and concise API for manipulating command line arguments and related tasks

CMS

  • Umbraco - Umbraco is a free open source Content Management System built on the ASP.NET platform
  • Composite C1 - A web CMS that focus on UX and adaptability
  • Orchard - Free, open source, community-focused project aimed at delivering applications and reusable components on the ASP.NET platform
  • mojoPortal - MojoPortal is an extensible, cross database, mobile friendly, web content management system (CMS) and web application framework written in C# ASP.NET

Code Analysis and Metrics

  • StyleCop - StyleCop analyzes C# source code to enforce a set of style and consistency rules
  • Gendarme - Extensible rule-based tool to find problems in .NET applications and libraries
  • Metrics-Net - Capturing CLR and application-level metrics. So you know what's going on.

Continuous Integration

  • TeamCity - Ready to work, extensible and developer-friendly build server — out of the box

Cryptography

  • HashLib - HashLib is a collection of nearly all hash algorithms you've ever seen, it supports almost everything and is very easy to use

Database

  • BrightstarDb - BrightstarDB is a native .NET RDF triple store

Database Drivers

DirectX

  • SlimDX - DirectX framework wrapper for .NET applications

Documentation

  • Sandcastle - Sandcastle Help File Builder similar to NDoc
  • SharpDox - A c# documentation tool

E-Commerce and Payments

Environment Management

Git Tools

  • LibGit2Sharp - LibGit2Sharp brings all the might and speed of libgit2, a native Git implementation, to the managed world of .Net and Mono.

Graphics

  • Oxyplot - OxyPlot is a cross-platform plotting library for .NET

GUI

  • MahApps.Metro - Toolkit for creating Metro styled WPF apps
  • Callisto - A control toolkit for Windows 8 XAML applications. Contains some UI controls to make it easier to create Windows UI style apps for the Windows Store in accordance with Windows UI guidelines.

HTTP

  • RestSharp - Simple REST and HTTP API Client for .NET
  • EasyHttp - Http Library for C#

IDE

  • SharpDevelop - A free IDE for .NET programming languages
  • MonoDevelop - MonoDevelop is a cross platform IDE mostly aimed at Mono/.NET developers
  • Visual Studio Express - The free lightweight version of Visual Studio for .NET programming.

Image Processing

  • ImageResizer - Add commands to image URLs to get altered versions in milliseconds. Resizing, editing etc of images in real-time.
  • ImageProcessor - Open-source .NET library to manipulate images on-the-fly.

Install tools

  • Wix Toolset - The most powerful set of tools available to create your Windows installation experience

Internationalization

  • i18n - Smart internationalization for ASP.NET MVC

IoC

  • Castle Windsor - Castle Windsor is best of breed, mature Inversion of Control container available for .NET and Silverlight
  • Unity - Lightweight extensible dependency injection container with support for constructor, property, and method call injection
  • Autofac - An addictive .NET IoC container
  • Ninject - The ninja of .net dependency injectors
  • StructureMap - The original IoC/DI Container for .Net
  • Spring.Net - Spring.NET is an open source application framework that makes building enterprise .NET applications easier

Logging

  • Essential Diagnostics - Extends the inbuilt features of System.Diagnostics namespace to provide flexible logging
  • NLog - NLog - Advanced .NET and Silverlight Logging
  • ELMAH - Official ELMAH site
  • Elmah MVC - Elmah for MVC
  • Log4Net - The Apache log4net library is a tool to help the programmer output log statements to a variety of output targets
  • Serilog - A no-nonsense logging library for the NoSQL era. Combines the best of traditional and structured diagnostic logging in an easy-to-use package.
  • StackExchange.Exceptional - Error handler used for the Stack Exchange network

Markdown Processors

  • MarkdownSharp - Open source C# implementation of Markdown processor, as featured on Stack Overflow.

Mail

  • FluentEmail - A Fluent Wrapper for System.Net.Mail with razor templating support.
  • MailKit - A complete cross-platform mail stack including IMAP, POP3, SMTP, authentication and more. Built on top of MimeKit.
  • MimeKit - A cross-platform .NET MIME creation and parser library with support for S/MIME, PGP, TNEF and Unix mbox spools.

Metrics

Misc

  • AzureCrawler - Take HTML Snapshots for your Angular, Ember, Durandal or any JavaScript applications
  • LINQPad - a C#/VB/F# scratchpad that instantly executes any expression, statement block or program with rich output formatting and a wealth of features. Also lets you interactively query databases in LINQ.
  • .NET Fiddle - Write, compile and run C# code in the browser. The C# equivalent of JSFiddle.
  • Humanizer - Humanizer meets all your .NET needs for manipulating and displaying strings, enums, dates, times, timespans, numbers and quantities
  • ScriptCS - Write C# apps with a text editor, nuget and the power of Roslyn!
  • Mono.Cecil - Cecil is a library to generate and inspect programs and libraries in the ECMA CIL form.

MVVM

  • Caliburn.Micro - A small, yet powerful framework, designed for building applications across all XAML platforms. Its strong support for MV* patterns will enable you to build your solution quickly, without the need to sacrifice code quality or testability.
  • MVVM Light Toolkit - The main purpose of the toolkit is to accelerate the creation and development of MVVM applications in WPF, Silverlight, Windows Store (RT) and for Windows Phone
  • Catel - Catel is an application development platform with the focus on MVVM (WPF, Silverlight, Windows Phone and WinRT) and MVC (ASP.NET MVC). The core of Catel contains an IoC container, models, validation, memento, message mediator, argument checking, etc.

Office

  • ClosedXML - ClosedXML makes it easier for developers to create Excel 2007/2010 files

ORM

  • Entity Framework - Object-relational mapper that enables .NET developers to work with relational data using domain-specific objects
  • BL Toolkit - Business Logic Toolkit for .NET
  • Dapper
  • Dapper Extensions - Small library that complements Dapper by adding basic CRUD operations (Get, Insert, Update, Delete) for your POCOs
  • NHibernate - NHibernate Object Relational Mapper
  • FluentMigrator - Fluent Migrations framework for .net
  • ServiceStack.OrmLite - Light, simple and fast convention-based POCO ORM
  • Massive - A small, happy, data access tool that will love you forever.

Package Management

  • NuGet - THE .NET Package Manager
  • OpenWrap - OpenWrap Package Manager

PDF

  • ITextSharp - iText is a PDF library that allows you to CREATE, ADAPT, INSPECT and MAINTAIN documents in the Portable Document Format (PDF)

Profiler

  • MiniProfiler - A simple but effective mini-profiler for ASP.NET websites
  • Glimpse - The open source diagnostics platform for the web

Queue

  • NServiceBus - The most popular service bus for .NET
  • Hangfire - Incredibly easy way to perform fire-and-forget, delayed and recurring tasks inside ASP.NET applications
  • RabbitMQ.NET - Implementation of an AMQP client library for C#, and a binding exposing AMQP services via WCF
  • NetMQ - NetMQ is 100% native C# port of ZeroMQ
  • MassTransit - MassTransit is lean service bus implementation for building loosely coupled applications using the .NET Framework.

Scheduling

  • QuartzNet - Quartz Enterprise Scheduler .NET

SDK and API Clients

  • AWS SDK - The AWS SDK for .NET enables .NET developers to easily work with Amazon Web Services
  • Azure SDK Tools - A set of PowerShell cmdlets for developers and administrators to develop, deploy and manage Microsoft Azure applications
  • Octokit.NET - A GitHub API client library for .NET
  • DropNet - Client Library for the Dropbox API

Search

Serialization

  • Protobuf.NET - Protocol buffers is the name of the binary serialization format used by Google for much of their data communications
  • Json.NET - Popular high-performance JSON framework for .NET
  • ServiceStack.Text - JSON, JSV and CSV Text Serializers used in servicestack.net
  • Msgpack-Cli - MessagePack implementation for Common Language Infrastructure
  • Jil - Fast .NET JSON Serializer, built on Sigil (used by StackOverflow)

Style Guide

Template Engine

  • RazorEngine - Open source templating engine based on Microsoft's Razor parsing engine

Testing

  • NUnit
  • xUnit - xUnit.net is a free, open source, community-focused unit testing tool for the .NET Framework
  • SpecFlow - Binding business requirements to .Net code
  • AutoFixture - AutoFixture is an open source framework for .NET designed to minimize the 'Arrange' phase of your unit tests
  • Moq - The most popular and friendly mocking framework for .NET
  • Machine.Specifications - Machine.Specifications (MSpec) is a context/specification framework that removes language noise and simplifies tests.
  • Rhino Mocks - Dynamic Mocking Framework for .NET
  • Fluent Assertions - A set of .NET extension methods that allow you to more naturally specify the expected outcome of a TDD or BDD-style test
  • NSubstitute - A friendly substitute for .NET mocking frameworks

Visual Studio Plugins

  • Web Essentials - Web Essentials extends Visual Studio with lots of new features that web developers have been missing for many years
  • VsVIM - VIM in Visual Studio
  • Nuget Package Manager - NuGet is the package manager for the Microsoft development platform including .NET
  • SideWaffle - A collection of Item Templates for Visual Studio 2012/2013 that makes any web developer's life much easier
  • Resharper - Developer Productivity Tool for Visual Studio (Commercial)

Web Frameworks

  • ASP.NET MVC - ASP.NET is a free web framework for building great web sites and applications
  • NancyFx - Lightweight, low-ceremony, framework for building HTTP based services on .Net and Mono
  • IISNode - Host NodeJS applications in IIS

Web Servers

  • EmbedIO - Web server built on Mono and cross-platform

WebSocket

  • SignalR - Library for ASP.NET developers that makes it incredibly simple to add real-time web functionality to your applications
  • Fleck - Fleck is a WebSocket server implementation in C#. Branched from the Nugget project
  • Websocket-Sharp - A C# implementation of the WebSocket protocol client and server
  • XSockets - Provides a great set of tools for you to build real-time applications on the Microsoft.NET plattform and much more

Windows Services

  • TopShelf - An easy service hosting framework for building Windows services using .NET

Other Awesome Lists


Other amazingly awesome lists can be found in the awesome-awesomeness list

2015-11-11

CRAN-R_RefreshPArt10

This post just follows the previews refresh9.

WORKING WITH Data Frames

Data Frame manipulation

Example

# Built-in R data set stored in a data frame
mtcars
head(mtcars)
tail(mtcars)
# Investigate the structure of the mtcars data set to get started!
str(mtcars)
# planets
planets <- c("Mercury", "Venus", "Earth", "Mars", "Jupiter", "Saturn", "Uranus", "Neptune");
type <- c("Terrestrial planet", "Terrestrial planet", "Terrestrial planet", "Terrestrial planet", "Gas giant", "Gas giant", "Gas giant", "Gas giant")
diameter <- c(0.382, 0.949, 1, 0.532, 11.209, 9.449, 4.007, 3.883); 
rotation <- c(58.64, -243.02, 1, 1.03, 0.41, 0.43, -0.72, 0.67);
rings <- c(FALSE, FALSE, FALSE, FALSE, TRUE, TRUE, TRUE, TRUE);
# Create the data frame:
planets_df  <-data.frame(planets,type,diameter,rotation,rings)
#
order(planets_df)
# Check the structure of 'planets_df'
str(planets_df)
# All data from the first three planets
closest_planets_df <- planets_df[1:3, ]
# All data from the last three planets
furthest_planets_df <- planets_df[6:8, ]
# Do selection on both rows and columns
furthest_planets_diameter <- planets_df[3:8,"diameter"]
# Create the rings_vector
rings_vector <- planets_df[,"rings"]
rings_vector
# Select the information on planets with rings:
planets_with_rings_df <- planets_df[rings_vector,]
# Planets that are smaller than planet Earth:
small_planets_df  <- subset(planets_df, subset = diameter < 1)
# What is the correct ordering based on the planets_df$diameter variable?
positions <- order(planets_df$diameter, decreasing = TRUE)
# Create new "ordered" data frame:
largest_first_df <- planets_df[positions, ]

CRAN-R_RefreshPart9

This post just follows the previews refresh8.

WORKING WITH LISTS

List manipulation

Example

# Vector with numerics from 1 up to 10
my_vector <- 1:10 
# Matrix with numerics from 1 up to 9
my_matrix <- matrix(1:9, ncol = 3)
# First 10 elements of the built-in data frame 'mtcars'
my_df <- mtcars[1:10,]
# Construct 'my_list' with these different elements:
my_list <- list(vec = my_vector, mat = my_matrix, df = my_df)
# The Shining string, vector, data.frame
moviename <- "The Shining"
actors <- c("Jack Nicholson","Shelley Duvall","Danny Lloyd","Scatman Crothers","Barry Nelson")
scores <- c(4.5,4.0,5.0)
sources <- c("IMDb1","IMDb2","IMDb3")
comments <- c("Best Horror Film I Have Ever Seen","A truly brilliant and scary film from Stanley Kubrick","A masterpiece of psychological horror")
reviews <- data.frame(scores, sources, comments)
# Create the list 'shining_list'
shining_list <- list(moviename = "The Shining", actors = actors, reviews = reviews)
# Define 'last_actor'
last_actor <- shining_list$actors[length(shining_list$actors)]
# Define 'second_review'
second_review <- shining_list$reviews[2,]
# We forgot something; add the year to shining_list:
shining_list_full <- c(shining_list, year = 1980)
# Have a look at shining_list_full
str(shining_list_full)

CRAN-R_RefreshPart8

This post just follows the previews refresh7.

WORKING WITH FACTORS

Factor manipulation

Examples

# gender factor
gender_vector <- c("Male", "Female", "Female", "Male", "Male")
# Define factor_gender_vector using 'factor()'
factor_gender_vector <- factor(gender_vector)
factor_gender_vector
# animal factor
animals_vector <- c("Elephant", "Giraffe", "Donkey", "Horse")
factor_animals_vector <- factor(animals_vector)
factor_animals_vector
# temperature factor
temperature_vector <- c("High", "Low", "High","Low", "Medium")
# ordered factors
factor_temperature_vector <- factor(temperature_vector, order = TRUE, levels = c("Low", "Medium", "High"))
factor_temperature_vector
# Code to form the factor vector
survey_vector <- c("M", "F", "F", "M", "M")
factor_survey_vector <- factor(survey_vector)
# Specify the levels of 'factor_survey_vector'
levels(factor_survey_vector) <- c("Female", "Male")
factor_survey_vector
# Type your code here for 'survey_vector'
summary(survey_vector)
# Type your code here for 'factor_survey_vector'
summary(factor_survey_vector)
# Male
factor_survey_vector[1]
# Female
factor_survey_vector[2]
# Create 'speed_vector'
speed_vector <- c("Fast", "Slow", "Slow", "Fast", "Ultra-fast")
speed_character_vector <- c("Slow", "Fast", "Ultra-fast")
# Add your code below
factor_speed_vector <- factor(speed_vector, order = TRUE, levels = speed_character_vector)
factor_speed_vector
# R prints automagically in the right order
summary(factor_speed_vector)
# Is data analyst 2 faster than data analyst 5?
compare_them <- factor_speed_vector[2] > factor_speed_vector[5] 
compare_them

CRAN-R_RefreshPart7

This post just follows the previews refresh 6.

WORKING WITH Matrices

Matrix manipulation

Examples

# Construction of a matrix with 3 rows that contain the numbers 1 up to 9
matrix(1:9, byrow = TRUE, nrow = 3)
# Box office Star Wars trilogy 1! The first element: US, the second element: Non-US 
new_hope <- c(460.998, 314.4)
empire_strikes <- c(290.475, 247.900)
return_jedi <- c(309.306, 165.8)
# Box office Star Wars trilogy 1 matrix
star_wars_matrix <- matrix(c(new_hope,empire_strikes,return_jedi), byrow = TRUE, nrow = 3)
# Box office Star Wars trilogy 2! The first element: US, the second element: Non-US 
phantom_menace <- c(474.5,552.5)
attack_clones <- c(310.7,338.7)
revenge_sith <- c(380.3,468.5)
# Box office Star Wars trilogy 2 matrix
star_wars_matrix2 <- matrix(c(phantom_menace,attack_clones,revenge_sith), byrow = TRUE, nrow = 3)
# column names
col_titles <- c("US", "non-US")
movie_names <- c("A New Hope", "The Empire Strikes Back", "Return of the Jedi")
movie_names2 <- c("The Phantom Menace", "Attack of the Clones", "Revenge of the Sith")
ticket_prices <- c(5, 5, 6, 6, 7, 7)
# Box office Star Wars trilogy 1 matrix rows and columns
colnames(star_wars_matrix) <- col_titles
rownames(star_wars_matrix) <- movie_names
star_wars_matrix
# Box office Star Wars trilogy 2 matrix rows and columns
colnames(star_wars_matrix2) <- col_titles
rownames(star_wars_matrix2) <- movie_names2
star_wars_matrix2
# Box office Star Wars trilogy 1 matrix 
box_office_all <- c(461, 314.4, 290.5, 247.9, 309.3, 165.8)
star_wars_matrix <- matrix(box_office_all, nrow=3, byrow = TRUE, dimnames = list(movie_names, col_titles))
# Box office Star Wars trilogy 1 Average non-US revenue per movie
star_wars_non_us_all  <- mean(star_wars_matrix[,2])
# Box office Star Wars trilogy 1 Average non-US revenue of first two movies
star_wars_non_us_some <- mean(star_wars_matrix[1:2,2])
# Box office Star Wars trilogy 1 Estimation of visitors 5$/ticket
star_wars_visitors <- star_wars_matrix/5
# Box office Star Wars trilogy 1 Estimation of visitors per ticket matrix
ticket_prices_matrix <- matrix(ticket_prices, nrow = 3, byrow = TRUE, dimnames = list(movie_names, col_titles))
star_wars_visitor_matrix <- star_wars_matrix / ticket_prices_matrix
# Box office Star Wars trilogy 1 Average number of US visitors
average_us_visitors <- mean(star_wars_visitor_matrix[ ,1])
# Box office Star Wars trilogy 1 Average number of non-US visitors
average_non_us_visitors <- mean(star_wars_visitor_matrix[ ,2])
# Box office Star Wars trilogy 2 matrix 
box_office_all2 <- c(474.5,552.5, 310.7,338.7, 380.3,468.5)
star_wars_matrix2 <- matrix(box_office_all2, nrow=3, byrow = TRUE, dimnames = list(movie_names2, col_titles))
# Box office Star Wars trilogy 2 Average non-US revenue per movie
star_wars_non_us_all2 <- mean(star_wars_matrix2[,2])
# Box office Star Wars trilogy 2 Average non-US revenue of first two movies
star_wars_non_us_some2 <- mean(star_wars_matrix2[1:2,2])
# Box office Star Wars trilogy 2 Estimation of visitors 5$/ticket
star_wars_visitors2 <- star_wars_matrix2/5
# Box office Star Wars trilogy 2 Estimation of visitors per ticket matrix
ticket_prices_matrix2 <- matrix(ticket_prices, nrow = 3, byrow = TRUE, dimnames = list(movie_names2, col_titles))
star_wars_visitor_matrix2 <- star_wars_matrix2 / ticket_prices_matrix2
# Box office Star Wars trilogy 2 Average number of US visitors
average_us_visitors2 <- mean(star_wars_visitor_matrix2[ ,1])
# Box office Star Wars trilogy 2 Average number of non-US visitors
average_non_us_visitors2 <- mean(star_wars_visitor_matrix2[ ,2])
# Box office Star Wars trilogy 1 worldwide box office figures
worldwide_vector <- rowSums(star_wars_matrix)
# Box office Star Wars trilogy 2 worldwide box office figures
worldwide_vector2 <- rowSums(star_wars_matrix2)
# Box office Star Wars trilogy 1 add worldwide_vector as a column to star_wars_matrix
all_wars_matrix <- cbind(star_wars_matrix,worldwide_vector)
# Box office Star Wars trilogy 1 add worldwide_vector as a column to star_wars_matrix
all_wars_matrix2 <- cbind(star_wars_matrix2,worldwide_vector2)
#
all_star_wars <- rbind(star_wars_matrix,star_wars_matrix2)
all_star_wars2 <- rbind(all_wars_matrix,all_wars_matrix2)

CRAN-R_RefreshPart6

This post just follows the previews refresh 5.

Working with vectors

Vector manipulation

Examples

#numeric vector
numeric_vector <- c(1, 10, 49)
#char vector
character_vector <- c("a", "b", "c")
# Complete the code for 'boolean_vector'
boolean_vector <- c(TRUE,FALSE,TRUE)
#
A_vector <- c(1, 2, 3)
B_vector <- c(4, 5, 6)
# Take the sum of 'A_vector' and 'B_vector'
total_vector <- A_vector + B_vector
# Print 'total_vector' to the console
total_vector
# Poker winnings from Monday to Friday
poker_vector <- c(140, -50, 20, -120, 240)
# Roulette winnings from Monday to Friday
roulette_vector <- c(-24, -50, 100, -350, 10)
roulette_vector
# Give names to both 'poker_vector' and 'roulette_vector'
days_vector <- c("Monday", "Tuesday", "Wednesday", "Thursday", "Friday")
names(roulette_vector) <- days_vector
names(poker_vector) <- days_vector
# What days of the week did you make money on poker?
selection_poker_vector <- poker_vector > 0
selection_poker_vector
# Select from poker_vector these days
poker_winning_days <- poker_vector[selection_poker_vector]
poker_winning_days
# What days of the week did you make money on roulette?
selection_roulette_vector <- roulette_vector > 0
selection_roulette_vector
# Select from roulette_vector these days
roulette_winning_days <- roulette_vector[selection_roulette_vector]
roulette_winning_days
# Define a new variable based on a selection Wednesday
poker_wednesday <- poker_vector[3]
poker_wednesday
# Define a new variable based on a selection Tuesday to Thursday
poker_midweek <- poker_vector[c(2,3,4)]
poker_midweek
# average midweek gain
average_midweek_gain <- mean(poker_vector[c("Monday", "Tuesday", "Wednesday")])
# Define a new variable based on a selection
roulette_selection_vector <- roulette_vector[2:5]
roulette_selection_vector
# Up to you now:
total_daily <- poker_vector + roulette_vector
total_daily
# Calculate total gains for poker and roulette
total_poker <- sum(poker_vector)
total_roulette <- sum(roulette_vector)
# total week
total_week <- total_poker + total_roulette
total_week
# Check if you realized higher total gains in poker than in roulette 
answer <- total_poker > total_roulette
answer

HTMLCode

HTMLCode Content