An OPEN-SOURCE programming LANGUAGE and free software ENVIRONMENT for STATISTICAL COMPUTING and GRAPHICS
> R uses a ...
> command line interface |
"R doesn’t protect you from yourself: you can easily shoot yourself in the foot. As long as you don’t aim the gun at your foot and pull the trigger, you won’t have a problem."
R is a functional programming language. Every operation is a function call.
1 + 2 `+`(1, 2)
[1] 3 [1] 3
"To understand computations in R, two slogans are helpful:
- John Chambers
Don't reinvent the wheel!
R is highly extensible through packages
Many amazing packages come installed with R. See the Packages pane in RStudio or run the following command in the R console: installed.packages()
To access the functions (and other objects) from a package, first load the package using the library()
function.
qplot(x = Petal.Width, y = Petal.Length, data = iris)
Error: could not find function "qplot"
library(ggplot2) qplot(x = Petal.Width, y = Petal.Length, data = iris)
* Can also use the double-colon operator, for example:
ggplot2::qplot()
Most R functions come packaged with robust documentation, which you can access by using the help()
function:
# pull up help page for the mean function help(mean)
Fundamental unit of reproducible R code
Includes:
Standards for creating
May depend on other packages
Typically domain specific
The Comprehensive R Archive Network
A collection of sites ("mirrors") that carry identical material, consisting of the R distribution(s), the contributed extensions, documentation for R and binaries.
(i.e. main repository for R and packages)
Master site: https://CRAN.R-project.org/
Download the latest version of R
Over 7,800 packages available
Install packages from CRAN:
install.packages("dplyr")
Grammar for Data Manipulation
library(dplyr) mtcars %>% filter(mpg >= 15) %>% group_by(cyl) %>% summarise(numCARS = n(), avgMPG = mean(mpg), avgHP = mean(hp), medWT = median(wt), pctMANUAL = mean(am)) %>% arrange(cyl)
# A tibble: 3 × 6 cyl numCARS avgMPG avgHP medWT pctMANUAL <dbl> <int> <dbl> <dbl> <dbl> <dbl> 1 4 11 26.66364 82.63636 2.200 0.7272727 2 6 7 19.74286 122.28571 3.215 0.4285714 3 8 9 16.47778 198.77778 3.570 0.2222222
Publication Quality Graphics
library(ggplot2) ggplot(data = mtcars, aes(x = hp, y = mpg)) + geom_point() + stat_smooth(method = lm)
Dynamic Documents, Presentations and Reports
Interactive HTML Maps
library(leaflet) leaflet() %>% addTiles() %>% setView(lng = -81.6925, lat = 41.50132, zoom = 17) %>% addMarkers(lng = -81.695174, lat = 41.501313, popup = paste0("<b>HIMSS Innovation Center</b>", "<br>4th floor of the Global Center for Health Innovation", "<br>1 St Clair Ave NE", "<br>Cleveland, OH 44114"))
Interactive HTML Tables
library(DT) datatable(iris, extensions = "Scroller", options = list( scrollY = 320, scrollCollapse = TRUE ), rownames = FALSE)
Interactive HTML Time Series Plots
library(dygraphs) lungDeaths <- cbind(mdeaths, fdeaths) dygraph(lungDeaths) %>% dyLegend(width = 300, show = "always") %>% dyRangeSelector(dateWindow = c("1974-01-01", "1979-12-31"))
ODBC Database Access
library(RODBC) ch <- odbcConnect("Adhoc") x <- sqlQuery(ch, "select * from dbo.MyTable;") close(ch) head(x)
id random1 random2 1 1 0.3550420 -0.17346265 2 2 0.4017450 0.02835218 3 3 0.2567329 0.79680834 4 4 0.6899611 1.39265608 5 5 0.8510193 -0.30869383 6 6 0.6148350 -0.27166393
Book1.xlsx
Excel Connector for R
library(XLConnect) x <- readWorksheetFromFile(file = "../xlsx/Book1.xlsx", sheet = "Sheet1", startRow = 2, startCol = 2, endRow = 3, endCol = 3, header = FALSE) y <- x + 4 wb <- loadWorkbook("../xlsx/Book1.xlsx") setStyleAction(object = wb, type = XLC$"STYLE_ACTION.NONE") writeWorksheet(object = wb, data = y, sheet = "Sheet1", startRow = 5, startCol = 4, header = FALSE) saveWorkbook(wb)