SlideShare a Scribd company logo
Advanced R
Cheat Sheet
Environment Basics
RStudio® is a trademark of RStudio, Inc. • CC BY Arianne Colton, Sean Chen • data.scientist.info@gmail.com • 844-448-1212 • rstudio.com Updated: 2/16
Environments
Environment – Data structure (with two
components below) that powers lexical scoping
1. Named list (“Bag of names”) – each name
points to an object stored elsewhere in
memory.
If an object has no names pointing to it, it
gets automatically deleted by the garbage
collector.
• Access with: ls('env1')
2. Parent environment – used to implement
lexical scoping. If a name is not found in
an environment, then R will look in its
parent (and so on).
• Access with: parent.env('env1')
Four special environments
1. Empty environment – ultimate ancestor of
all environments
• Parent: none
• Access with: emptyenv()
2. Base environment - environment of the
base package
• Parent: empty environment
• Access with: baseenv()
3. Global environment – the interactive
workspace that you normally work in
• Parent: environment of last attached
package
• Access with: globalenv()
4. Current environment – environment that
R is currently working in (may be any of the
above and others)
• Parent: empty environment
• Access with: environment()
1. Enclosing environment - an environment where the
function is created. It determines how function finds
value.
• Enclosing environment never changes, even if the
function is moved to a different environment.
• Access with: environment(‘func1’)
2. Binding environment - all environments that the
function has a binding to. It determines how we find
the function.
• Access with: pryr::where(‘func1’)
Example (for enclosing and binding environment):
3. Execution environment - new created environments
to host a function call execution.
• Two parents :
I. Enclosing environment of the function
II. Calling environment of the function
• Execution environment is thrown away once the
function has completed.
4. Calling environment - environments where the
function was called.
• Access with: parent.frame(‘func1’)
• Dynamic scoping :
• About : look up variables in the calling
environment rather than in the enclosing
environment
• Usage : most useful for developing functions that
aid interactive data analysis
Function Environments
Search path – mechanism to look up objects, particularly functions.
• Access with : search() – lists all parents of the global environment
(see Figure 1)
• Access any environment on the search path:
as.environment('package:base')
Figure 1 – The Search Path
• Mechanism : always start the search from global environment,
then inside the latest attached package environment.
• New package loading with library()/require() : new package is
attached right after global environment. (See Figure 2)
• Name conflict in two different package : functions with the same
name, latest package function will get called.
Figure 2 – Package Attachment
search() :
'.GlobalEnv' ... 'Autoloads' 'package:base'
library(reshape2); search()
'.GlobalEnv' 'package:reshape2' ... 'Autoloads' 'package:base‘
NOTE: Autoloads : special environment used for saving memory by
only loading package objects (like big datasets) when needed
Search Path
Binding Names to Values
Assignment – act of binding (or rebinding) a name to a value in an
environment.
1. <- (Regular assignment arrow) – always creates a variable in the
current environment
2. <<- (Deep assignment arrow) - modifies an existing variable
found by walking up the parent environments
Warning: If <<- doesn’t find an existing variable, it will create
one in the global environment.
y <- 1
e <- new.env()
e$g <- function(x) x + y
• function g enclosing environment is the global
environment,
• the binding environment is "e".
Create environment: env1<-new.env()
Created by: Arianne Colton and Sean Chen
Human readable description of any R data structure :
Every Object has a mode and a class
1. Mode: represents how an object is stored in memory
• ‘type’ of the object from R’s point of view
• Access with: typeof()
2. Class: represents the object’s abstract type
• ‘type’ of the object from R’s object-oriented programming
point of view
• Access with: class()
RStudio® is a trademark of RStudio, Inc. • CC BY Arianne Colton, Sean Chen • data.scientist.info@gmail.com • 844-448-1212 • rstudio.com Updated: 2/16
Data Structures
1. Factors are built on top of integer vectors using two attributes :
2. Useful when you know the possible values a variable may take,
even if you don’t see all values in a given dataset. Base Type (C Structure)
S3
R has three object oriented systems :
1. S3 is a very casual system. It has no formal
definition of classes. It implements generic
function OO.
• Generic-function OO - a special type of
function called a generic function decides
which method to call.
• Message-passing OO - messages
(methods) are sent to objects and the object
determines which function to call.
2. S4 works similarly to S3, but is more formal.
Two major differences to S3 :
• Formal class definitions - describe the
representation and inheritance for each class,
and has special helper functions for defining
generics and methods.
• Multiple dispatch - generic functions can
pick methods based on the class of any
number of arguments, not just one.
3. Reference classes are very different from S3
and S4:
• Implements message-passing OO -
methods belong to classes, not functions.
• Notation - $ is used to separate objects and
methods, so method calls look like
canvas$drawRect('blue').
1. About S3 :
• R's first and simplest OO system
• Only OO system used in the base and stats
package
• Methods belong to functions, not to objects or
classes.
2. Notation :
• generic.class()
3. Useful ‘Generic’ Operations
• Get all methods that belong to the ‘mean’
generic:
- Methods(‘mean’)
• List all generics that have a method for the
‘Date’ class :
- methods(class = ‘Date’)
4. S3 objects are usually built on top of lists, or
atomic vectors with attributes.
• Factor and data frame are S3 class
• Useful operations:
Object Oriented (OO) Field Guide
mean.Date()
Date method for the
generic - mean()
Example: drawRect(canvas, 'blue')
Language: R
Example: canvas.drawRect('blue')
Language: Java, C++, and C#
Check if object is
an S3 object
is.object(x) & !isS4(x) or
pryr::otype()
Check if object
inherits from a
specific class
inherits(x, 'classname')
Determine class of
any object
class(x)class(x) -> 'factor'
levels(x) # defines the set of allowed values
Factors
Warning on Factor Usage:
1. Factors look and often behave like character vectors, they
are actually integers. Be careful when treating them like
strings.
2. Most data loading functions automatically convert character
vectors to factors. (Use argument stringAsFactors = FALSE
to suppress this behavior)
Object Oriented Systems
R base types - the internal C-level types that underlie
the above OO systems.
• Includes : atomic vectors, list, functions,
environments, etc.
• Useful operation : Determine if an object is a base
type (Not S3, S4 or RC) is.object(x) returns FALSE
Homogeneous Heterogeneous
1d Atomic vector List
2d Matrix Data frame
nd Array
Note: R has no 0-dimensional or scalar types. Individual numbers
or strings, are actually vectors of length one, NOT scalars.
typeof() class()
strings or vector of strings character character
numbers or vector of numbers numeric numeric
list list list
data.frame list data.frame
str(variable)
• Internal representation : C structure (or struct) that
includes :
• Contents of the object
• Memory Management Information
• Type
- Access with: typeof()
Function Basics
RStudio® is a trademark of RStudio, Inc. • CC BY Arianne Colton, Sean Chen • data.scientist.info@gmail.com • 844-448-1212 • rstudio.com Updated: 2/16
Functions
Functions – objects in their own right
All R functions have three parts:
Every operation is a function call
• +, for, if, [, $, { …
• x + y is the same as `+`(x, y)
Primitive FunctionsFunction Arguments
Return Values
What is Lexical Scoping?
• Looks up value of a symbol. (see
"Enclosing Environment")
• findGlobals() - lists all the external
dependencies of a function
• R relies on lexical scoping to find
everything, even the + operator.
Arguments – passed by reference and copied on modify
1. Arguments are matched first by exact name (perfect matching), then
by prefix matching, and finally by position.
2. Check if an argument was supplied : missing()
3. Lazy evaluation – since x is not used stop("This is an error!")
never get evaluated.
4. Force evaluation
5. Default arguments evaluation
body() code inside the function
formals()
list of arguments which
controls how you can
call the function
environment()
“map” of the location of
the function’s variables
(see “Enclosing
Environment”)
Lexical Scoping
f <- function() x + 1
codetools::findGlobals(f)
> '+' 'x'
environment(f) <- emptyenv()
f()
# error in f(): could not find function “+”
f <- function(x = ls()) {
a <- 1
x
}
f() -> 'a' 'x' ls() evaluated inside f
f(ls()) ls() evaluated in global environment
f <- function(x) {
force(x)
10
}
f <- function(x) {
10
}
f(stop('This is an error!')) -> 10
i <- function(a, b) {
missing(a) -> # return true or false
}
• Last expression evaluated or explicit return().
Only use explicit return() when returning early.
• Return ONLY single object.
Workaround is to return a list containing any number of objects.
• Invisible return object value - not printed out by default when you
call the function.
f1 <- function() invisible(1)
Influx Functions
Replacement Functions
What are Primitive Functions?
1. Call C code directly with .Primitive() and contain no R code
2. formals(), body(), and environment() are all NULL
3. Only found in base package
4. More efficient since they operate at a low level
print(sum) :
> function (..., na.rm = FALSE) .Primitive('sum')
What are Influx Functions?
1. Function name comes in between its arguments, like + or –
2. All user-created infix functions must start and end with %.
3. Useful way of providing a default value in case the output of
another function is NULL:
`%+%` <- function(a, b) paste0(a, b)
'new' %+% 'string'
`%||%` <- function(a, b) if (!is.null(a)) a else b
function_that_might_return_null() %||% default value
What are Replacement Functions?
1. Act like they modify their arguments in place, and have the
special name xxx <-
2. Actually create a modified copy. Can use pryr::address() to
find the memory address of the underlying object
`second<-` <- function(x, value) {
x[2] <- value
x
}
x <- 1:10
second(x) <- 5L
Note: the backtick (`), lets you refer to
functions or variables that have
otherwise reserved or illegal names.
Simplifying vs. Preserving Subsetting
RStudio® is a trademark of RStudio, Inc. • CC BY Arianne Colton, Sean Chen • data.scientist.info@gmail.com • 844-448-1212 • rstudio.com Updated: 2/16
Subsetting
1. Simplifying subsetting
• Returns the simplest possible
data structure that can represent
the output
2. Preserving subsetting
• Keeps the structure of the output
the same as the input.
• When you use drop = FALSE, it’s
preserving
Simplifying behavior varies slightly
between different data types:
1. Atomic Vector
• x[[1]] is the same as x[1]
2. List
• [ ] always returns a list
• Use [[ ]] to get list contents, this
returns a single value piece out of
a list
3. Factor
• Drops any unused levels but it
remains a factor class
4. Matrix or Array
• If any of the dimensions has
length 1, that dimension is
dropped
5. Data Frame
• If output is a single column, it
returns a vector instead of a data
frame
Data Frame Subsetting
$ Subsetting Operator
Data Frame – possesses the characteristics of both lists and
matrices. If you subset with a single vector, they behave like lists; if
you subset with two vectors, they behave like matrices
1. Subset with a single vector : Behave like lists
2. Subset with two vectors : Behave like matrices
The results are the same in the above examples, however, results are
different if subsetting with only one column. (see below)
1. Behave like matrices
• Result: the result is a vector
2. Behave like lists
• Result: the result remains a data frame of 1 column
1. About Subsetting Operator
• Useful shorthand for [[ combined with character subsetting
2. Difference vs. [[
• $ does partial matching, [[ does not
3. Common mistake with $
• Using it when you have the name of a column stored in a variable
Examples
Simplifying* Preserving
Vector x[[1]] x[1]
List x[[1]] x[1]
Factor x[1:4, drop = T] x[1:4]
Array x[1, ] or x[, 1]
x[1, , drop = F] or
x[, 1, drop = F]
Data
frame
x[, 1] or x[[1]]
x[, 1, drop = F] or
x[1]
Subsetting returns a copy of the
original data, NOT copy-on modified
x <- list(abc = 1)
x$a -> 1 # since "exact = FALSE"
x[['a']] -> # would be an error
var <- 'cyl'
x$var
# doesn't work, translated to x[['var']]
# Instead use x[[var]]
1. Lookup tables (character subsetting)
2. Matching and merging by hand (integer subsetting)
Lookup table which has multiple columns of information:
First Method
Second Method
3. Expanding aggregated counts (integer subsetting)
• Problem: a data frame where identical rows have been
collapsed into one and a count column has been added
• Solution: rep() and integer subsetting make it easy to
uncollapse the data by subsetting with a repeated row index:
rep(x, y) rep replicates the values in x, y times.
4. Removing columns from data frames (character subsetting)
There are two ways to remove columns from a data frame:
5. Selecting rows based on a condition (logical subsetting)
• This is the most commonly used technique for extracting
rows out of a data frame.
x <- c('m', 'f', 'u', 'f', 'f', 'm', 'm')
lookup <- c(m = 'Male', f = 'Female', u = NA)
lookup[x]
> m f u f f m m
> 'Male' 'Female' NA 'Female' 'Female' 'Male' 'Male'
unname(lookup[x])
> 'Male' 'Female' NA 'Female' 'Female' 'Male' 'Male'
grades <- c(1, 2, 2, 3, 1)
info <- data.frame(
grade = 3:1,
desc = c('Excellent', 'Good', 'Poor'),
fail = c(F, F, T)
)
df1$countCol is c(3, 5, 1)
rep(1:nrow(df1), df1$countCol)
> 1 1 1 2 2 2 2 2 3
Set individual columns to NULL df1$col3 <- NULL
Subset to return only columns you want df1[c('col1', 'col2')]
df1[c('col1', 'col2')]
df1[, c('col1', 'col2')]
str(df1[, 'col1']) -> int [1:3]
str(df1['col1']) -> ‘data.frame’
x$y is equivalent to x[['y', exact = FALSE]]
df1[df1$col1 == 5 & df1$col2 == 4, ]
id <- match(grades, info$grade)
info[id, ]
rownames(info) <- info$grade
info[as.character(grades), ]
Debugging Methods
RStudio® is a trademark of RStudio, Inc. • CC BY Arianne Colton, Sean Chen • data.scientist.info@gmail.com • 844-448-1212 • rstudio.com Updated: 2/16
Debugging, Condition Handling and Defensive Programming
1. traceback() or RStudio's error inspector
• Lists the sequence of calls that lead to
the error
2. browser() or RStudio's breakpoints tool
• Opens an interactive debug session at
an arbitrary location in the code
3. options(error = browser) or RStudio's
"Rerun with Debug" tool
• Opens an interactive debug session
where the error occurred
• Error Options:
options(error = recover)
• Difference vs. 'browser': can enter
environment of any of the calls in the
stack
options(error = dump_and_quit)
• Equivalent to ‘recover’ for non-
interactive mode
• Creates last.dump.rda in the current
working directory
In batch R process :
In a later interactive session :
Condition Handling of Expected Errors
Defensive Programming
dump_and_quit <- function() {
# Save debugging info to file
last.dump.rda
dump.frames(to.file = TRUE)
# Quit R with error status
q(status = 1)
}
options(error = dump_and_quit)
load("last.dump.rda")
debugger()
result = tryCatch(code,
error = function(c) "error",
warning = function(c) "warning",
message = function(c) "message"
)
Use conditionMessage(c) or c$message to extract the message
associated with the original error.
1. Communicating potential problems to users:
I. stop()
• Action : raise fatal error and force all execution to terminate
• Example usage : when there is no way for a function to continue
II. warning()
• Action : generate warnings to display potential problems
• Example usage : when some of elements of a vectorized input are
invalid
III. message()
• Action : generate messages to give informative output
• Example usage : when you would like to print the steps of a program
execution
2. Handling conditions programmatically:
I. try()
• Action : gives you the ability to continue execution even when an error
occurs
II. tryCatch()
• Action : lets you specify handler functions that control what happens
when a condition is signaled
Basic principle : "fail fast", to raise an error as soon as something goes wrong
1. stopifnot() or use ‘assertthat’ package - check inputs are correct
2. Avoid subset(), transform() and with() - these are non-standard
evaluation, when they fail, often fail with uninformative error messages.
3. Avoid [ and sapply() - functions that can return different types of output.
• Recommendation : Whenever subsetting a data frame in a function, you
should always use drop = FALSE
Subsetting continued
Boolean Algebra vs. Sets
(Logical and Integer Subsetting)
1. Using integer subsetting is more effective
when:
• You want to find the first (or last) TRUE.
• You have very few TRUEs and very
many FALSEs; a set representation may
be faster and require less storage.
2. which() - conversion from boolean
representation to integer representation
• Integer representation length : is always
<= boolean representation length
• Common mistakes :
I. Use x[which(y)] instead of x[y]
II. x[-which(y)] is not equivalent to
x[!y]
Subsetting with Assignment
1. All subsetting operators can be combined
with assignment to modify selected values
of the input vector.
2. Subsetting with nothing in conjunction with
assignment :
• Why : Preserve original object class and
structure
Recommendation:
Avoid switching from logical to integer
subsetting unless you want, for example, the
first or last TRUE value
df1[] <- lapply(df1, as.integer)
which(c(T, F, T F)) -> 1 3
df1$col1[df1$col1 < 8] <- 0
Ad

More Related Content

What's hot (18)

Collections - Lists, Sets
Collections - Lists, Sets Collections - Lists, Sets
Collections - Lists, Sets
Hitesh-Java
 
Collection framework
Collection frameworkCollection framework
Collection framework
Ravi_Kant_Sahu
 
06 Java Language And OOP Part VI
06 Java Language And OOP Part VI06 Java Language And OOP Part VI
06 Java Language And OOP Part VI
Hari Christian
 
Session 20 - Collections - Maps
Session 20 - Collections - MapsSession 20 - Collections - Maps
Session 20 - Collections - Maps
PawanMM
 
Java collections
Java collectionsJava collections
Java collections
Hamid Ghorbani
 
Feature Extraction for Large-Scale Text Collections
Feature Extraction for Large-Scale Text CollectionsFeature Extraction for Large-Scale Text Collections
Feature Extraction for Large-Scale Text Collections
Sease
 
Java collection
Java collectionJava collection
Java collection
Arati Gadgil
 
Collections In Java
Collections In JavaCollections In Java
Collections In Java
Binoj T E
 
Synapseindia reviews.odp.
Synapseindia reviews.odp.Synapseindia reviews.odp.
Synapseindia reviews.odp.
Tarunsingh198
 
Java - Collections framework
Java - Collections frameworkJava - Collections framework
Java - Collections framework
Riccardo Cardin
 
Collections in Java
Collections in JavaCollections in Java
Collections in Java
Khasim Cise
 
Java Collection Framework
Java Collection FrameworkJava Collection Framework
Java Collection Framework
Lakshmi R
 
java collections
java collectionsjava collections
java collections
javeed_mhd
 
Session 17 - Collections - Lists, Sets
Session 17 - Collections - Lists, SetsSession 17 - Collections - Lists, Sets
Session 17 - Collections - Lists, Sets
PawanMM
 
264finalppt (1)
264finalppt (1)264finalppt (1)
264finalppt (1)
Mahima Verma
 
Java OOP Programming language (Part 3) - Class and Object
Java OOP Programming language (Part 3) - Class and ObjectJava OOP Programming language (Part 3) - Class and Object
Java OOP Programming language (Part 3) - Class and Object
OUM SAOKOSAL
 
Collections - Sorting, Comparing Basics
Collections - Sorting, Comparing Basics Collections - Sorting, Comparing Basics
Collections - Sorting, Comparing Basics
Hitesh-Java
 
Java OOP Programming language (Part 8) - Java Database JDBC
Java OOP Programming language (Part 8) - Java Database JDBCJava OOP Programming language (Part 8) - Java Database JDBC
Java OOP Programming language (Part 8) - Java Database JDBC
OUM SAOKOSAL
 
Collections - Lists, Sets
Collections - Lists, Sets Collections - Lists, Sets
Collections - Lists, Sets
Hitesh-Java
 
06 Java Language And OOP Part VI
06 Java Language And OOP Part VI06 Java Language And OOP Part VI
06 Java Language And OOP Part VI
Hari Christian
 
Session 20 - Collections - Maps
Session 20 - Collections - MapsSession 20 - Collections - Maps
Session 20 - Collections - Maps
PawanMM
 
Feature Extraction for Large-Scale Text Collections
Feature Extraction for Large-Scale Text CollectionsFeature Extraction for Large-Scale Text Collections
Feature Extraction for Large-Scale Text Collections
Sease
 
Collections In Java
Collections In JavaCollections In Java
Collections In Java
Binoj T E
 
Synapseindia reviews.odp.
Synapseindia reviews.odp.Synapseindia reviews.odp.
Synapseindia reviews.odp.
Tarunsingh198
 
Java - Collections framework
Java - Collections frameworkJava - Collections framework
Java - Collections framework
Riccardo Cardin
 
Collections in Java
Collections in JavaCollections in Java
Collections in Java
Khasim Cise
 
Java Collection Framework
Java Collection FrameworkJava Collection Framework
Java Collection Framework
Lakshmi R
 
java collections
java collectionsjava collections
java collections
javeed_mhd
 
Session 17 - Collections - Lists, Sets
Session 17 - Collections - Lists, SetsSession 17 - Collections - Lists, Sets
Session 17 - Collections - Lists, Sets
PawanMM
 
Java OOP Programming language (Part 3) - Class and Object
Java OOP Programming language (Part 3) - Class and ObjectJava OOP Programming language (Part 3) - Class and Object
Java OOP Programming language (Part 3) - Class and Object
OUM SAOKOSAL
 
Collections - Sorting, Comparing Basics
Collections - Sorting, Comparing Basics Collections - Sorting, Comparing Basics
Collections - Sorting, Comparing Basics
Hitesh-Java
 
Java OOP Programming language (Part 8) - Java Database JDBC
Java OOP Programming language (Part 8) - Java Database JDBCJava OOP Programming language (Part 8) - Java Database JDBC
Java OOP Programming language (Part 8) - Java Database JDBC
OUM SAOKOSAL
 

Viewers also liked (20)

Cheat sheets for data scientists
Cheat sheets for data scientistsCheat sheets for data scientists
Cheat sheets for data scientists
Ajay Ohri
 
R Reference Card for Data Mining
R Reference Card for Data MiningR Reference Card for Data Mining
R Reference Card for Data Mining
Yanchang Zhao
 
Regression and Classification with R
Regression and Classification with RRegression and Classification with R
Regression and Classification with R
Yanchang Zhao
 
Python
PythonPython
Python
Vinayak Hegde
 
Python3 cheatsheet
Python3 cheatsheetPython3 cheatsheet
Python3 cheatsheet
Gil Cohen
 
Python Cheat Sheet
Python Cheat SheetPython Cheat Sheet
Python Cheat Sheet
GlowTouch
 
Statistics for data scientists
Statistics for  data scientistsStatistics for  data scientists
Statistics for data scientists
Ajay Ohri
 
Describing Distributions with Numbers
Describing Distributions with NumbersDescribing Distributions with Numbers
Describing Distributions with Numbers
nszakir
 
R Cheat Sheet
R Cheat SheetR Cheat Sheet
R Cheat Sheet
Dr. Volkan OBAN
 
Hadley verse
Hadley verseHadley verse
Hadley verse
Ajay Ohri
 
Ggplot in python
Ggplot in pythonGgplot in python
Ggplot in python
Ajay Ohri
 
Building a Beer Recommender with Yhat (PAPIs.io - November 2014)
Building a Beer Recommender with Yhat (PAPIs.io - November 2014)Building a Beer Recommender with Yhat (PAPIs.io - November 2014)
Building a Beer Recommender with Yhat (PAPIs.io - November 2014)
Austin Ogilvie
 
Analyzing mlb data with ggplot
Analyzing mlb data with ggplotAnalyzing mlb data with ggplot
Analyzing mlb data with ggplot
Austin Ogilvie
 
Python at yhat (august 2013)
Python at yhat (august 2013)Python at yhat (august 2013)
Python at yhat (august 2013)
Austin Ogilvie
 
Table of Useful R commands.
Table of Useful R commands.Table of Useful R commands.
Table of Useful R commands.
Dr. Volkan OBAN
 
Using R for Social Media and Sports Analytics
Using R for Social Media and Sports AnalyticsUsing R for Social Media and Sports Analytics
Using R for Social Media and Sports Analytics
Ajay Ohri
 
Analyze this
Analyze thisAnalyze this
Analyze this
Ajay Ohri
 
What is r in spanish.
What is r in spanish.What is r in spanish.
What is r in spanish.
Ajay Ohri
 
Summer school python in spanish
Summer school python in spanishSummer school python in spanish
Summer school python in spanish
Ajay Ohri
 
Rcpp
RcppRcpp
Rcpp
Ajay Ohri
 
Cheat sheets for data scientists
Cheat sheets for data scientistsCheat sheets for data scientists
Cheat sheets for data scientists
Ajay Ohri
 
R Reference Card for Data Mining
R Reference Card for Data MiningR Reference Card for Data Mining
R Reference Card for Data Mining
Yanchang Zhao
 
Regression and Classification with R
Regression and Classification with RRegression and Classification with R
Regression and Classification with R
Yanchang Zhao
 
Python3 cheatsheet
Python3 cheatsheetPython3 cheatsheet
Python3 cheatsheet
Gil Cohen
 
Python Cheat Sheet
Python Cheat SheetPython Cheat Sheet
Python Cheat Sheet
GlowTouch
 
Statistics for data scientists
Statistics for  data scientistsStatistics for  data scientists
Statistics for data scientists
Ajay Ohri
 
Describing Distributions with Numbers
Describing Distributions with NumbersDescribing Distributions with Numbers
Describing Distributions with Numbers
nszakir
 
Hadley verse
Hadley verseHadley verse
Hadley verse
Ajay Ohri
 
Ggplot in python
Ggplot in pythonGgplot in python
Ggplot in python
Ajay Ohri
 
Building a Beer Recommender with Yhat (PAPIs.io - November 2014)
Building a Beer Recommender with Yhat (PAPIs.io - November 2014)Building a Beer Recommender with Yhat (PAPIs.io - November 2014)
Building a Beer Recommender with Yhat (PAPIs.io - November 2014)
Austin Ogilvie
 
Analyzing mlb data with ggplot
Analyzing mlb data with ggplotAnalyzing mlb data with ggplot
Analyzing mlb data with ggplot
Austin Ogilvie
 
Python at yhat (august 2013)
Python at yhat (august 2013)Python at yhat (august 2013)
Python at yhat (august 2013)
Austin Ogilvie
 
Table of Useful R commands.
Table of Useful R commands.Table of Useful R commands.
Table of Useful R commands.
Dr. Volkan OBAN
 
Using R for Social Media and Sports Analytics
Using R for Social Media and Sports AnalyticsUsing R for Social Media and Sports Analytics
Using R for Social Media and Sports Analytics
Ajay Ohri
 
Analyze this
Analyze thisAnalyze this
Analyze this
Ajay Ohri
 
What is r in spanish.
What is r in spanish.What is r in spanish.
What is r in spanish.
Ajay Ohri
 
Summer school python in spanish
Summer school python in spanishSummer school python in spanish
Summer school python in spanish
Ajay Ohri
 
Ad

Similar to Advanced R cheat sheet (20)

Lucene And Solr Document Classification
Lucene And Solr Document ClassificationLucene And Solr Document Classification
Lucene And Solr Document Classification
Alessandro Benedetti
 
Apache Lucene/Solr Document Classification
Apache Lucene/Solr Document ClassificationApache Lucene/Solr Document Classification
Apache Lucene/Solr Document Classification
Sease
 
Java Tutorial
Java TutorialJava Tutorial
Java Tutorial
Singsys Pte Ltd
 
Functional Reactive Programming (FRP): Working with RxJS
Functional Reactive Programming (FRP): Working with RxJSFunctional Reactive Programming (FRP): Working with RxJS
Functional Reactive Programming (FRP): Working with RxJS
Oswald Campesato
 
Advanced Data Analytics with R Programming.ppt
Advanced Data Analytics with R Programming.pptAdvanced Data Analytics with R Programming.ppt
Advanced Data Analytics with R Programming.ppt
Anshika865276
 
01-introductionto Object ooriented Programming in JAVA CS.ppt
01-introductionto Object ooriented Programming in JAVA CS.ppt01-introductionto Object ooriented Programming in JAVA CS.ppt
01-introductionto Object ooriented Programming in JAVA CS.ppt
GESISLAMIAPATTOKI
 
Data analystics with R module 3 cseds vtu
Data analystics with R module 3 cseds vtuData analystics with R module 3 cseds vtu
Data analystics with R module 3 cseds vtu
LalithauLali
 
Chapter 7 Run Time Environment
Chapter 7   Run Time EnvironmentChapter 7   Run Time Environment
Chapter 7 Run Time Environment
Radhakrishnan Chinnusamy
 
How to obtain and install R.ppt
How to obtain and install R.pptHow to obtain and install R.ppt
How to obtain and install R.ppt
rajalakshmi5921
 
Java 8 - Project Lambda
Java 8 - Project LambdaJava 8 - Project Lambda
Java 8 - Project Lambda
Rahman USTA
 
Slides on introduction to R by ArinBasu MD
Slides on introduction to R by ArinBasu MDSlides on introduction to R by ArinBasu MD
Slides on introduction to R by ArinBasu MD
SonaCharles2
 
17641.ppt
17641.ppt17641.ppt
17641.ppt
vikassingh569137
 
Basics of R-Progranmming with instata.ppt
Basics of R-Progranmming with instata.pptBasics of R-Progranmming with instata.ppt
Basics of R-Progranmming with instata.ppt
geethar79
 
17641.ppt
17641.ppt17641.ppt
17641.ppt
AhmedAbdalla903058
 
Java tutorials
Java tutorialsJava tutorials
Java tutorials
น้องน๊อต อยากเหยียบดวงจันทร์
 
JS-02-JavaScript-Objects.ppt
JS-02-JavaScript-Objects.pptJS-02-JavaScript-Objects.ppt
JS-02-JavaScript-Objects.ppt
MadhukarReddy74
 
JavaTutorials.ppt
JavaTutorials.pptJavaTutorials.ppt
JavaTutorials.ppt
Khizar40
 
Pptchdtdtfygugyxthgihhihigugufydtdfzrzrzrtdyfyfy
PptchdtdtfygugyxthgihhihigugufydtdfzrzrzrtdyfyfyPptchdtdtfygugyxthgihhihigugufydtdfzrzrzrtdyfyfy
Pptchdtdtfygugyxthgihhihigugufydtdfzrzrzrtdyfyfy
dnthulk
 
Core java by a introduction sandesh sharma
Core java by a introduction sandesh sharmaCore java by a introduction sandesh sharma
Core java by a introduction sandesh sharma
Sandesh Sharma
 
Python 2. classes- cruciql for students objects1.pptx
Python 2. classes- cruciql for students objects1.pptxPython 2. classes- cruciql for students objects1.pptx
Python 2. classes- cruciql for students objects1.pptx
KiranRaj648995
 
Lucene And Solr Document Classification
Lucene And Solr Document ClassificationLucene And Solr Document Classification
Lucene And Solr Document Classification
Alessandro Benedetti
 
Apache Lucene/Solr Document Classification
Apache Lucene/Solr Document ClassificationApache Lucene/Solr Document Classification
Apache Lucene/Solr Document Classification
Sease
 
Functional Reactive Programming (FRP): Working with RxJS
Functional Reactive Programming (FRP): Working with RxJSFunctional Reactive Programming (FRP): Working with RxJS
Functional Reactive Programming (FRP): Working with RxJS
Oswald Campesato
 
Advanced Data Analytics with R Programming.ppt
Advanced Data Analytics with R Programming.pptAdvanced Data Analytics with R Programming.ppt
Advanced Data Analytics with R Programming.ppt
Anshika865276
 
01-introductionto Object ooriented Programming in JAVA CS.ppt
01-introductionto Object ooriented Programming in JAVA CS.ppt01-introductionto Object ooriented Programming in JAVA CS.ppt
01-introductionto Object ooriented Programming in JAVA CS.ppt
GESISLAMIAPATTOKI
 
Data analystics with R module 3 cseds vtu
Data analystics with R module 3 cseds vtuData analystics with R module 3 cseds vtu
Data analystics with R module 3 cseds vtu
LalithauLali
 
How to obtain and install R.ppt
How to obtain and install R.pptHow to obtain and install R.ppt
How to obtain and install R.ppt
rajalakshmi5921
 
Java 8 - Project Lambda
Java 8 - Project LambdaJava 8 - Project Lambda
Java 8 - Project Lambda
Rahman USTA
 
Slides on introduction to R by ArinBasu MD
Slides on introduction to R by ArinBasu MDSlides on introduction to R by ArinBasu MD
Slides on introduction to R by ArinBasu MD
SonaCharles2
 
Basics of R-Progranmming with instata.ppt
Basics of R-Progranmming with instata.pptBasics of R-Progranmming with instata.ppt
Basics of R-Progranmming with instata.ppt
geethar79
 
JS-02-JavaScript-Objects.ppt
JS-02-JavaScript-Objects.pptJS-02-JavaScript-Objects.ppt
JS-02-JavaScript-Objects.ppt
MadhukarReddy74
 
JavaTutorials.ppt
JavaTutorials.pptJavaTutorials.ppt
JavaTutorials.ppt
Khizar40
 
Pptchdtdtfygugyxthgihhihigugufydtdfzrzrzrtdyfyfy
PptchdtdtfygugyxthgihhihigugufydtdfzrzrzrtdyfyfyPptchdtdtfygugyxthgihhihigugufydtdfzrzrzrtdyfyfy
Pptchdtdtfygugyxthgihhihigugufydtdfzrzrzrtdyfyfy
dnthulk
 
Core java by a introduction sandesh sharma
Core java by a introduction sandesh sharmaCore java by a introduction sandesh sharma
Core java by a introduction sandesh sharma
Sandesh Sharma
 
Python 2. classes- cruciql for students objects1.pptx
Python 2. classes- cruciql for students objects1.pptxPython 2. classes- cruciql for students objects1.pptx
Python 2. classes- cruciql for students objects1.pptx
KiranRaj648995
 
Ad

More from Dr. Volkan OBAN (20)

Conference Paper:IMAGE PROCESSING AND OBJECT DETECTION APPLICATION: INSURANCE...
Conference Paper:IMAGE PROCESSING AND OBJECT DETECTION APPLICATION: INSURANCE...Conference Paper:IMAGE PROCESSING AND OBJECT DETECTION APPLICATION: INSURANCE...
Conference Paper:IMAGE PROCESSING AND OBJECT DETECTION APPLICATION: INSURANCE...
Dr. Volkan OBAN
 
Covid19py Python Package - Example
Covid19py  Python Package - ExampleCovid19py  Python Package - Example
Covid19py Python Package - Example
Dr. Volkan OBAN
 
Object detection with Python
Object detection with Python Object detection with Python
Object detection with Python
Dr. Volkan OBAN
 
Python - Rastgele Orman(Random Forest) Parametreleri
Python - Rastgele Orman(Random Forest) ParametreleriPython - Rastgele Orman(Random Forest) Parametreleri
Python - Rastgele Orman(Random Forest) Parametreleri
Dr. Volkan OBAN
 
Linear Programming wi̇th R - Examples
Linear Programming wi̇th R - ExamplesLinear Programming wi̇th R - Examples
Linear Programming wi̇th R - Examples
Dr. Volkan OBAN
 
"optrees" package in R and examples.(optrees:finds optimal trees in weighted ...
"optrees" package in R and examples.(optrees:finds optimal trees in weighted ..."optrees" package in R and examples.(optrees:finds optimal trees in weighted ...
"optrees" package in R and examples.(optrees:finds optimal trees in weighted ...
Dr. Volkan OBAN
 
k-means Clustering in Python
k-means Clustering in Pythonk-means Clustering in Python
k-means Clustering in Python
Dr. Volkan OBAN
 
Naive Bayes Example using R
Naive Bayes Example using  R Naive Bayes Example using  R
Naive Bayes Example using R
Dr. Volkan OBAN
 
R forecasting Example
R forecasting ExampleR forecasting Example
R forecasting Example
Dr. Volkan OBAN
 
k-means Clustering and Custergram with R
k-means Clustering and Custergram with Rk-means Clustering and Custergram with R
k-means Clustering and Custergram with R
Dr. Volkan OBAN
 
Data Science and its Relationship to Big Data and Data-Driven Decision Making
Data Science and its Relationship to Big Data and Data-Driven Decision MakingData Science and its Relationship to Big Data and Data-Driven Decision Making
Data Science and its Relationship to Big Data and Data-Driven Decision Making
Dr. Volkan OBAN
 
Data Visualization with R.ggplot2 and its extensions examples.
Data Visualization with R.ggplot2 and its extensions examples.Data Visualization with R.ggplot2 and its extensions examples.
Data Visualization with R.ggplot2 and its extensions examples.
Dr. Volkan OBAN
 
Scikit-learn Cheatsheet-Python
Scikit-learn Cheatsheet-PythonScikit-learn Cheatsheet-Python
Scikit-learn Cheatsheet-Python
Dr. Volkan OBAN
 
Python Pandas for Data Science cheatsheet
Python Pandas for Data Science cheatsheet Python Pandas for Data Science cheatsheet
Python Pandas for Data Science cheatsheet
Dr. Volkan OBAN
 
Pandas,scipy,numpy cheatsheet
Pandas,scipy,numpy cheatsheetPandas,scipy,numpy cheatsheet
Pandas,scipy,numpy cheatsheet
Dr. Volkan OBAN
 
ReporteRs package in R. forming powerpoint documents-an example
ReporteRs package in R. forming powerpoint documents-an exampleReporteRs package in R. forming powerpoint documents-an example
ReporteRs package in R. forming powerpoint documents-an example
Dr. Volkan OBAN
 
ReporteRs package in R. forming powerpoint documents-an example
ReporteRs package in R. forming powerpoint documents-an exampleReporteRs package in R. forming powerpoint documents-an example
ReporteRs package in R. forming powerpoint documents-an example
Dr. Volkan OBAN
 
R-ggplot2 package Examples
R-ggplot2 package ExamplesR-ggplot2 package Examples
R-ggplot2 package Examples
Dr. Volkan OBAN
 
R Machine Learning packages( generally used)
R Machine Learning packages( generally used)R Machine Learning packages( generally used)
R Machine Learning packages( generally used)
Dr. Volkan OBAN
 
treemap package in R and examples.
treemap package in R and examples.treemap package in R and examples.
treemap package in R and examples.
Dr. Volkan OBAN
 
Conference Paper:IMAGE PROCESSING AND OBJECT DETECTION APPLICATION: INSURANCE...
Conference Paper:IMAGE PROCESSING AND OBJECT DETECTION APPLICATION: INSURANCE...Conference Paper:IMAGE PROCESSING AND OBJECT DETECTION APPLICATION: INSURANCE...
Conference Paper:IMAGE PROCESSING AND OBJECT DETECTION APPLICATION: INSURANCE...
Dr. Volkan OBAN
 
Covid19py Python Package - Example
Covid19py  Python Package - ExampleCovid19py  Python Package - Example
Covid19py Python Package - Example
Dr. Volkan OBAN
 
Object detection with Python
Object detection with Python Object detection with Python
Object detection with Python
Dr. Volkan OBAN
 
Python - Rastgele Orman(Random Forest) Parametreleri
Python - Rastgele Orman(Random Forest) ParametreleriPython - Rastgele Orman(Random Forest) Parametreleri
Python - Rastgele Orman(Random Forest) Parametreleri
Dr. Volkan OBAN
 
Linear Programming wi̇th R - Examples
Linear Programming wi̇th R - ExamplesLinear Programming wi̇th R - Examples
Linear Programming wi̇th R - Examples
Dr. Volkan OBAN
 
"optrees" package in R and examples.(optrees:finds optimal trees in weighted ...
"optrees" package in R and examples.(optrees:finds optimal trees in weighted ..."optrees" package in R and examples.(optrees:finds optimal trees in weighted ...
"optrees" package in R and examples.(optrees:finds optimal trees in weighted ...
Dr. Volkan OBAN
 
k-means Clustering in Python
k-means Clustering in Pythonk-means Clustering in Python
k-means Clustering in Python
Dr. Volkan OBAN
 
Naive Bayes Example using R
Naive Bayes Example using  R Naive Bayes Example using  R
Naive Bayes Example using R
Dr. Volkan OBAN
 
k-means Clustering and Custergram with R
k-means Clustering and Custergram with Rk-means Clustering and Custergram with R
k-means Clustering and Custergram with R
Dr. Volkan OBAN
 
Data Science and its Relationship to Big Data and Data-Driven Decision Making
Data Science and its Relationship to Big Data and Data-Driven Decision MakingData Science and its Relationship to Big Data and Data-Driven Decision Making
Data Science and its Relationship to Big Data and Data-Driven Decision Making
Dr. Volkan OBAN
 
Data Visualization with R.ggplot2 and its extensions examples.
Data Visualization with R.ggplot2 and its extensions examples.Data Visualization with R.ggplot2 and its extensions examples.
Data Visualization with R.ggplot2 and its extensions examples.
Dr. Volkan OBAN
 
Scikit-learn Cheatsheet-Python
Scikit-learn Cheatsheet-PythonScikit-learn Cheatsheet-Python
Scikit-learn Cheatsheet-Python
Dr. Volkan OBAN
 
Python Pandas for Data Science cheatsheet
Python Pandas for Data Science cheatsheet Python Pandas for Data Science cheatsheet
Python Pandas for Data Science cheatsheet
Dr. Volkan OBAN
 
Pandas,scipy,numpy cheatsheet
Pandas,scipy,numpy cheatsheetPandas,scipy,numpy cheatsheet
Pandas,scipy,numpy cheatsheet
Dr. Volkan OBAN
 
ReporteRs package in R. forming powerpoint documents-an example
ReporteRs package in R. forming powerpoint documents-an exampleReporteRs package in R. forming powerpoint documents-an example
ReporteRs package in R. forming powerpoint documents-an example
Dr. Volkan OBAN
 
ReporteRs package in R. forming powerpoint documents-an example
ReporteRs package in R. forming powerpoint documents-an exampleReporteRs package in R. forming powerpoint documents-an example
ReporteRs package in R. forming powerpoint documents-an example
Dr. Volkan OBAN
 
R-ggplot2 package Examples
R-ggplot2 package ExamplesR-ggplot2 package Examples
R-ggplot2 package Examples
Dr. Volkan OBAN
 
R Machine Learning packages( generally used)
R Machine Learning packages( generally used)R Machine Learning packages( generally used)
R Machine Learning packages( generally used)
Dr. Volkan OBAN
 
treemap package in R and examples.
treemap package in R and examples.treemap package in R and examples.
treemap package in R and examples.
Dr. Volkan OBAN
 

Recently uploaded (20)

Secure_File_Storage_Hybrid_Cryptography.pptx..
Secure_File_Storage_Hybrid_Cryptography.pptx..Secure_File_Storage_Hybrid_Cryptography.pptx..
Secure_File_Storage_Hybrid_Cryptography.pptx..
yuvarajreddy2002
 
VKS-Python-FIe Handling text CSV Binary.pptx
VKS-Python-FIe Handling text CSV Binary.pptxVKS-Python-FIe Handling text CSV Binary.pptx
VKS-Python-FIe Handling text CSV Binary.pptx
Vinod Srivastava
 
Day 1 - Lab 1 Reconnaissance Scanning with NMAP, Vulnerability Assessment wit...
Day 1 - Lab 1 Reconnaissance Scanning with NMAP, Vulnerability Assessment wit...Day 1 - Lab 1 Reconnaissance Scanning with NMAP, Vulnerability Assessment wit...
Day 1 - Lab 1 Reconnaissance Scanning with NMAP, Vulnerability Assessment wit...
Abodahab
 
How to join illuminati Agent in uganda call+256776963507/0741506136
How to join illuminati Agent in uganda call+256776963507/0741506136How to join illuminati Agent in uganda call+256776963507/0741506136
How to join illuminati Agent in uganda call+256776963507/0741506136
illuminati Agent uganda call+256776963507/0741506136
 
Perencanaan Pengendalian-Proyek-Konstruksi-MS-PROJECT.pptx
Perencanaan Pengendalian-Proyek-Konstruksi-MS-PROJECT.pptxPerencanaan Pengendalian-Proyek-Konstruksi-MS-PROJECT.pptx
Perencanaan Pengendalian-Proyek-Konstruksi-MS-PROJECT.pptx
PareaRusan
 
Principles of information security Chapter 5.ppt
Principles of information security Chapter 5.pptPrinciples of information security Chapter 5.ppt
Principles of information security Chapter 5.ppt
EstherBaguma
 
Calories_Prediction_using_Linear_Regression.pptx
Calories_Prediction_using_Linear_Regression.pptxCalories_Prediction_using_Linear_Regression.pptx
Calories_Prediction_using_Linear_Regression.pptx
TijiLMAHESHWARI
 
Data Science Courses in India iim skills
Data Science Courses in India iim skillsData Science Courses in India iim skills
Data Science Courses in India iim skills
dharnathakur29
 
183409-christina-rossetti.pdfdsfsdasggsag
183409-christina-rossetti.pdfdsfsdasggsag183409-christina-rossetti.pdfdsfsdasggsag
183409-christina-rossetti.pdfdsfsdasggsag
fardin123rahman07
 
Medical Dataset including visualizations
Medical Dataset including visualizationsMedical Dataset including visualizations
Medical Dataset including visualizations
vishrut8750588758
 
How iCode cybertech Helped Me Recover My Lost Funds
How iCode cybertech Helped Me Recover My Lost FundsHow iCode cybertech Helped Me Recover My Lost Funds
How iCode cybertech Helped Me Recover My Lost Funds
ireneschmid345
 
computer organization and assembly language.docx
computer organization and assembly language.docxcomputer organization and assembly language.docx
computer organization and assembly language.docx
alisoftwareengineer1
 
Minions Want to eat presentacion muy linda
Minions Want to eat presentacion muy lindaMinions Want to eat presentacion muy linda
Minions Want to eat presentacion muy linda
CarlaAndradesSoler1
 
md-presentHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHation.pptx
md-presentHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHation.pptxmd-presentHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHation.pptx
md-presentHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHation.pptx
fatimalazaar2004
 
FPET_Implementation_2_MA to 360 Engage Direct.pptx
FPET_Implementation_2_MA to 360 Engage Direct.pptxFPET_Implementation_2_MA to 360 Engage Direct.pptx
FPET_Implementation_2_MA to 360 Engage Direct.pptx
ssuser4ef83d
 
Defense Against LLM Scheming 2025_04_28.pptx
Defense Against LLM Scheming 2025_04_28.pptxDefense Against LLM Scheming 2025_04_28.pptx
Defense Against LLM Scheming 2025_04_28.pptx
Greg Makowski
 
DPR_Expert_Recruitment_notice_Revised.pdf
DPR_Expert_Recruitment_notice_Revised.pdfDPR_Expert_Recruitment_notice_Revised.pdf
DPR_Expert_Recruitment_notice_Revised.pdf
inmishra17121973
 
Stack_and_Queue_Presentation_Final (1).pptx
Stack_and_Queue_Presentation_Final (1).pptxStack_and_Queue_Presentation_Final (1).pptx
Stack_and_Queue_Presentation_Final (1).pptx
binduraniha86
 
Simple_AI_Explanation_English somplr.pptx
Simple_AI_Explanation_English somplr.pptxSimple_AI_Explanation_English somplr.pptx
Simple_AI_Explanation_English somplr.pptx
ssuser2aa19f
 
Geometry maths presentation for begginers
Geometry maths presentation for begginersGeometry maths presentation for begginers
Geometry maths presentation for begginers
zrjacob283
 
Secure_File_Storage_Hybrid_Cryptography.pptx..
Secure_File_Storage_Hybrid_Cryptography.pptx..Secure_File_Storage_Hybrid_Cryptography.pptx..
Secure_File_Storage_Hybrid_Cryptography.pptx..
yuvarajreddy2002
 
VKS-Python-FIe Handling text CSV Binary.pptx
VKS-Python-FIe Handling text CSV Binary.pptxVKS-Python-FIe Handling text CSV Binary.pptx
VKS-Python-FIe Handling text CSV Binary.pptx
Vinod Srivastava
 
Day 1 - Lab 1 Reconnaissance Scanning with NMAP, Vulnerability Assessment wit...
Day 1 - Lab 1 Reconnaissance Scanning with NMAP, Vulnerability Assessment wit...Day 1 - Lab 1 Reconnaissance Scanning with NMAP, Vulnerability Assessment wit...
Day 1 - Lab 1 Reconnaissance Scanning with NMAP, Vulnerability Assessment wit...
Abodahab
 
Perencanaan Pengendalian-Proyek-Konstruksi-MS-PROJECT.pptx
Perencanaan Pengendalian-Proyek-Konstruksi-MS-PROJECT.pptxPerencanaan Pengendalian-Proyek-Konstruksi-MS-PROJECT.pptx
Perencanaan Pengendalian-Proyek-Konstruksi-MS-PROJECT.pptx
PareaRusan
 
Principles of information security Chapter 5.ppt
Principles of information security Chapter 5.pptPrinciples of information security Chapter 5.ppt
Principles of information security Chapter 5.ppt
EstherBaguma
 
Calories_Prediction_using_Linear_Regression.pptx
Calories_Prediction_using_Linear_Regression.pptxCalories_Prediction_using_Linear_Regression.pptx
Calories_Prediction_using_Linear_Regression.pptx
TijiLMAHESHWARI
 
Data Science Courses in India iim skills
Data Science Courses in India iim skillsData Science Courses in India iim skills
Data Science Courses in India iim skills
dharnathakur29
 
183409-christina-rossetti.pdfdsfsdasggsag
183409-christina-rossetti.pdfdsfsdasggsag183409-christina-rossetti.pdfdsfsdasggsag
183409-christina-rossetti.pdfdsfsdasggsag
fardin123rahman07
 
Medical Dataset including visualizations
Medical Dataset including visualizationsMedical Dataset including visualizations
Medical Dataset including visualizations
vishrut8750588758
 
How iCode cybertech Helped Me Recover My Lost Funds
How iCode cybertech Helped Me Recover My Lost FundsHow iCode cybertech Helped Me Recover My Lost Funds
How iCode cybertech Helped Me Recover My Lost Funds
ireneschmid345
 
computer organization and assembly language.docx
computer organization and assembly language.docxcomputer organization and assembly language.docx
computer organization and assembly language.docx
alisoftwareengineer1
 
Minions Want to eat presentacion muy linda
Minions Want to eat presentacion muy lindaMinions Want to eat presentacion muy linda
Minions Want to eat presentacion muy linda
CarlaAndradesSoler1
 
md-presentHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHation.pptx
md-presentHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHation.pptxmd-presentHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHation.pptx
md-presentHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHation.pptx
fatimalazaar2004
 
FPET_Implementation_2_MA to 360 Engage Direct.pptx
FPET_Implementation_2_MA to 360 Engage Direct.pptxFPET_Implementation_2_MA to 360 Engage Direct.pptx
FPET_Implementation_2_MA to 360 Engage Direct.pptx
ssuser4ef83d
 
Defense Against LLM Scheming 2025_04_28.pptx
Defense Against LLM Scheming 2025_04_28.pptxDefense Against LLM Scheming 2025_04_28.pptx
Defense Against LLM Scheming 2025_04_28.pptx
Greg Makowski
 
DPR_Expert_Recruitment_notice_Revised.pdf
DPR_Expert_Recruitment_notice_Revised.pdfDPR_Expert_Recruitment_notice_Revised.pdf
DPR_Expert_Recruitment_notice_Revised.pdf
inmishra17121973
 
Stack_and_Queue_Presentation_Final (1).pptx
Stack_and_Queue_Presentation_Final (1).pptxStack_and_Queue_Presentation_Final (1).pptx
Stack_and_Queue_Presentation_Final (1).pptx
binduraniha86
 
Simple_AI_Explanation_English somplr.pptx
Simple_AI_Explanation_English somplr.pptxSimple_AI_Explanation_English somplr.pptx
Simple_AI_Explanation_English somplr.pptx
ssuser2aa19f
 
Geometry maths presentation for begginers
Geometry maths presentation for begginersGeometry maths presentation for begginers
Geometry maths presentation for begginers
zrjacob283
 

Advanced R cheat sheet

  • 1. Advanced R Cheat Sheet Environment Basics RStudio® is a trademark of RStudio, Inc. • CC BY Arianne Colton, Sean Chen • [email protected] • 844-448-1212 • rstudio.com Updated: 2/16 Environments Environment – Data structure (with two components below) that powers lexical scoping 1. Named list (“Bag of names”) – each name points to an object stored elsewhere in memory. If an object has no names pointing to it, it gets automatically deleted by the garbage collector. • Access with: ls('env1') 2. Parent environment – used to implement lexical scoping. If a name is not found in an environment, then R will look in its parent (and so on). • Access with: parent.env('env1') Four special environments 1. Empty environment – ultimate ancestor of all environments • Parent: none • Access with: emptyenv() 2. Base environment - environment of the base package • Parent: empty environment • Access with: baseenv() 3. Global environment – the interactive workspace that you normally work in • Parent: environment of last attached package • Access with: globalenv() 4. Current environment – environment that R is currently working in (may be any of the above and others) • Parent: empty environment • Access with: environment() 1. Enclosing environment - an environment where the function is created. It determines how function finds value. • Enclosing environment never changes, even if the function is moved to a different environment. • Access with: environment(‘func1’) 2. Binding environment - all environments that the function has a binding to. It determines how we find the function. • Access with: pryr::where(‘func1’) Example (for enclosing and binding environment): 3. Execution environment - new created environments to host a function call execution. • Two parents : I. Enclosing environment of the function II. Calling environment of the function • Execution environment is thrown away once the function has completed. 4. Calling environment - environments where the function was called. • Access with: parent.frame(‘func1’) • Dynamic scoping : • About : look up variables in the calling environment rather than in the enclosing environment • Usage : most useful for developing functions that aid interactive data analysis Function Environments Search path – mechanism to look up objects, particularly functions. • Access with : search() – lists all parents of the global environment (see Figure 1) • Access any environment on the search path: as.environment('package:base') Figure 1 – The Search Path • Mechanism : always start the search from global environment, then inside the latest attached package environment. • New package loading with library()/require() : new package is attached right after global environment. (See Figure 2) • Name conflict in two different package : functions with the same name, latest package function will get called. Figure 2 – Package Attachment search() : '.GlobalEnv' ... 'Autoloads' 'package:base' library(reshape2); search() '.GlobalEnv' 'package:reshape2' ... 'Autoloads' 'package:base‘ NOTE: Autoloads : special environment used for saving memory by only loading package objects (like big datasets) when needed Search Path Binding Names to Values Assignment – act of binding (or rebinding) a name to a value in an environment. 1. <- (Regular assignment arrow) – always creates a variable in the current environment 2. <<- (Deep assignment arrow) - modifies an existing variable found by walking up the parent environments Warning: If <<- doesn’t find an existing variable, it will create one in the global environment. y <- 1 e <- new.env() e$g <- function(x) x + y • function g enclosing environment is the global environment, • the binding environment is "e". Create environment: env1<-new.env() Created by: Arianne Colton and Sean Chen
  • 2. Human readable description of any R data structure : Every Object has a mode and a class 1. Mode: represents how an object is stored in memory • ‘type’ of the object from R’s point of view • Access with: typeof() 2. Class: represents the object’s abstract type • ‘type’ of the object from R’s object-oriented programming point of view • Access with: class() RStudio® is a trademark of RStudio, Inc. • CC BY Arianne Colton, Sean Chen • [email protected] • 844-448-1212 • rstudio.com Updated: 2/16 Data Structures 1. Factors are built on top of integer vectors using two attributes : 2. Useful when you know the possible values a variable may take, even if you don’t see all values in a given dataset. Base Type (C Structure) S3 R has three object oriented systems : 1. S3 is a very casual system. It has no formal definition of classes. It implements generic function OO. • Generic-function OO - a special type of function called a generic function decides which method to call. • Message-passing OO - messages (methods) are sent to objects and the object determines which function to call. 2. S4 works similarly to S3, but is more formal. Two major differences to S3 : • Formal class definitions - describe the representation and inheritance for each class, and has special helper functions for defining generics and methods. • Multiple dispatch - generic functions can pick methods based on the class of any number of arguments, not just one. 3. Reference classes are very different from S3 and S4: • Implements message-passing OO - methods belong to classes, not functions. • Notation - $ is used to separate objects and methods, so method calls look like canvas$drawRect('blue'). 1. About S3 : • R's first and simplest OO system • Only OO system used in the base and stats package • Methods belong to functions, not to objects or classes. 2. Notation : • generic.class() 3. Useful ‘Generic’ Operations • Get all methods that belong to the ‘mean’ generic: - Methods(‘mean’) • List all generics that have a method for the ‘Date’ class : - methods(class = ‘Date’) 4. S3 objects are usually built on top of lists, or atomic vectors with attributes. • Factor and data frame are S3 class • Useful operations: Object Oriented (OO) Field Guide mean.Date() Date method for the generic - mean() Example: drawRect(canvas, 'blue') Language: R Example: canvas.drawRect('blue') Language: Java, C++, and C# Check if object is an S3 object is.object(x) & !isS4(x) or pryr::otype() Check if object inherits from a specific class inherits(x, 'classname') Determine class of any object class(x)class(x) -> 'factor' levels(x) # defines the set of allowed values Factors Warning on Factor Usage: 1. Factors look and often behave like character vectors, they are actually integers. Be careful when treating them like strings. 2. Most data loading functions automatically convert character vectors to factors. (Use argument stringAsFactors = FALSE to suppress this behavior) Object Oriented Systems R base types - the internal C-level types that underlie the above OO systems. • Includes : atomic vectors, list, functions, environments, etc. • Useful operation : Determine if an object is a base type (Not S3, S4 or RC) is.object(x) returns FALSE Homogeneous Heterogeneous 1d Atomic vector List 2d Matrix Data frame nd Array Note: R has no 0-dimensional or scalar types. Individual numbers or strings, are actually vectors of length one, NOT scalars. typeof() class() strings or vector of strings character character numbers or vector of numbers numeric numeric list list list data.frame list data.frame str(variable) • Internal representation : C structure (or struct) that includes : • Contents of the object • Memory Management Information • Type - Access with: typeof()
  • 3. Function Basics RStudio® is a trademark of RStudio, Inc. • CC BY Arianne Colton, Sean Chen • [email protected] • 844-448-1212 • rstudio.com Updated: 2/16 Functions Functions – objects in their own right All R functions have three parts: Every operation is a function call • +, for, if, [, $, { … • x + y is the same as `+`(x, y) Primitive FunctionsFunction Arguments Return Values What is Lexical Scoping? • Looks up value of a symbol. (see "Enclosing Environment") • findGlobals() - lists all the external dependencies of a function • R relies on lexical scoping to find everything, even the + operator. Arguments – passed by reference and copied on modify 1. Arguments are matched first by exact name (perfect matching), then by prefix matching, and finally by position. 2. Check if an argument was supplied : missing() 3. Lazy evaluation – since x is not used stop("This is an error!") never get evaluated. 4. Force evaluation 5. Default arguments evaluation body() code inside the function formals() list of arguments which controls how you can call the function environment() “map” of the location of the function’s variables (see “Enclosing Environment”) Lexical Scoping f <- function() x + 1 codetools::findGlobals(f) > '+' 'x' environment(f) <- emptyenv() f() # error in f(): could not find function “+” f <- function(x = ls()) { a <- 1 x } f() -> 'a' 'x' ls() evaluated inside f f(ls()) ls() evaluated in global environment f <- function(x) { force(x) 10 } f <- function(x) { 10 } f(stop('This is an error!')) -> 10 i <- function(a, b) { missing(a) -> # return true or false } • Last expression evaluated or explicit return(). Only use explicit return() when returning early. • Return ONLY single object. Workaround is to return a list containing any number of objects. • Invisible return object value - not printed out by default when you call the function. f1 <- function() invisible(1) Influx Functions Replacement Functions What are Primitive Functions? 1. Call C code directly with .Primitive() and contain no R code 2. formals(), body(), and environment() are all NULL 3. Only found in base package 4. More efficient since they operate at a low level print(sum) : > function (..., na.rm = FALSE) .Primitive('sum') What are Influx Functions? 1. Function name comes in between its arguments, like + or – 2. All user-created infix functions must start and end with %. 3. Useful way of providing a default value in case the output of another function is NULL: `%+%` <- function(a, b) paste0(a, b) 'new' %+% 'string' `%||%` <- function(a, b) if (!is.null(a)) a else b function_that_might_return_null() %||% default value What are Replacement Functions? 1. Act like they modify their arguments in place, and have the special name xxx <- 2. Actually create a modified copy. Can use pryr::address() to find the memory address of the underlying object `second<-` <- function(x, value) { x[2] <- value x } x <- 1:10 second(x) <- 5L Note: the backtick (`), lets you refer to functions or variables that have otherwise reserved or illegal names.
  • 4. Simplifying vs. Preserving Subsetting RStudio® is a trademark of RStudio, Inc. • CC BY Arianne Colton, Sean Chen • [email protected] • 844-448-1212 • rstudio.com Updated: 2/16 Subsetting 1. Simplifying subsetting • Returns the simplest possible data structure that can represent the output 2. Preserving subsetting • Keeps the structure of the output the same as the input. • When you use drop = FALSE, it’s preserving Simplifying behavior varies slightly between different data types: 1. Atomic Vector • x[[1]] is the same as x[1] 2. List • [ ] always returns a list • Use [[ ]] to get list contents, this returns a single value piece out of a list 3. Factor • Drops any unused levels but it remains a factor class 4. Matrix or Array • If any of the dimensions has length 1, that dimension is dropped 5. Data Frame • If output is a single column, it returns a vector instead of a data frame Data Frame Subsetting $ Subsetting Operator Data Frame – possesses the characteristics of both lists and matrices. If you subset with a single vector, they behave like lists; if you subset with two vectors, they behave like matrices 1. Subset with a single vector : Behave like lists 2. Subset with two vectors : Behave like matrices The results are the same in the above examples, however, results are different if subsetting with only one column. (see below) 1. Behave like matrices • Result: the result is a vector 2. Behave like lists • Result: the result remains a data frame of 1 column 1. About Subsetting Operator • Useful shorthand for [[ combined with character subsetting 2. Difference vs. [[ • $ does partial matching, [[ does not 3. Common mistake with $ • Using it when you have the name of a column stored in a variable Examples Simplifying* Preserving Vector x[[1]] x[1] List x[[1]] x[1] Factor x[1:4, drop = T] x[1:4] Array x[1, ] or x[, 1] x[1, , drop = F] or x[, 1, drop = F] Data frame x[, 1] or x[[1]] x[, 1, drop = F] or x[1] Subsetting returns a copy of the original data, NOT copy-on modified x <- list(abc = 1) x$a -> 1 # since "exact = FALSE" x[['a']] -> # would be an error var <- 'cyl' x$var # doesn't work, translated to x[['var']] # Instead use x[[var]] 1. Lookup tables (character subsetting) 2. Matching and merging by hand (integer subsetting) Lookup table which has multiple columns of information: First Method Second Method 3. Expanding aggregated counts (integer subsetting) • Problem: a data frame where identical rows have been collapsed into one and a count column has been added • Solution: rep() and integer subsetting make it easy to uncollapse the data by subsetting with a repeated row index: rep(x, y) rep replicates the values in x, y times. 4. Removing columns from data frames (character subsetting) There are two ways to remove columns from a data frame: 5. Selecting rows based on a condition (logical subsetting) • This is the most commonly used technique for extracting rows out of a data frame. x <- c('m', 'f', 'u', 'f', 'f', 'm', 'm') lookup <- c(m = 'Male', f = 'Female', u = NA) lookup[x] > m f u f f m m > 'Male' 'Female' NA 'Female' 'Female' 'Male' 'Male' unname(lookup[x]) > 'Male' 'Female' NA 'Female' 'Female' 'Male' 'Male' grades <- c(1, 2, 2, 3, 1) info <- data.frame( grade = 3:1, desc = c('Excellent', 'Good', 'Poor'), fail = c(F, F, T) ) df1$countCol is c(3, 5, 1) rep(1:nrow(df1), df1$countCol) > 1 1 1 2 2 2 2 2 3 Set individual columns to NULL df1$col3 <- NULL Subset to return only columns you want df1[c('col1', 'col2')] df1[c('col1', 'col2')] df1[, c('col1', 'col2')] str(df1[, 'col1']) -> int [1:3] str(df1['col1']) -> ‘data.frame’ x$y is equivalent to x[['y', exact = FALSE]] df1[df1$col1 == 5 & df1$col2 == 4, ] id <- match(grades, info$grade) info[id, ] rownames(info) <- info$grade info[as.character(grades), ]
  • 5. Debugging Methods RStudio® is a trademark of RStudio, Inc. • CC BY Arianne Colton, Sean Chen • [email protected] • 844-448-1212 • rstudio.com Updated: 2/16 Debugging, Condition Handling and Defensive Programming 1. traceback() or RStudio's error inspector • Lists the sequence of calls that lead to the error 2. browser() or RStudio's breakpoints tool • Opens an interactive debug session at an arbitrary location in the code 3. options(error = browser) or RStudio's "Rerun with Debug" tool • Opens an interactive debug session where the error occurred • Error Options: options(error = recover) • Difference vs. 'browser': can enter environment of any of the calls in the stack options(error = dump_and_quit) • Equivalent to ‘recover’ for non- interactive mode • Creates last.dump.rda in the current working directory In batch R process : In a later interactive session : Condition Handling of Expected Errors Defensive Programming dump_and_quit <- function() { # Save debugging info to file last.dump.rda dump.frames(to.file = TRUE) # Quit R with error status q(status = 1) } options(error = dump_and_quit) load("last.dump.rda") debugger() result = tryCatch(code, error = function(c) "error", warning = function(c) "warning", message = function(c) "message" ) Use conditionMessage(c) or c$message to extract the message associated with the original error. 1. Communicating potential problems to users: I. stop() • Action : raise fatal error and force all execution to terminate • Example usage : when there is no way for a function to continue II. warning() • Action : generate warnings to display potential problems • Example usage : when some of elements of a vectorized input are invalid III. message() • Action : generate messages to give informative output • Example usage : when you would like to print the steps of a program execution 2. Handling conditions programmatically: I. try() • Action : gives you the ability to continue execution even when an error occurs II. tryCatch() • Action : lets you specify handler functions that control what happens when a condition is signaled Basic principle : "fail fast", to raise an error as soon as something goes wrong 1. stopifnot() or use ‘assertthat’ package - check inputs are correct 2. Avoid subset(), transform() and with() - these are non-standard evaluation, when they fail, often fail with uninformative error messages. 3. Avoid [ and sapply() - functions that can return different types of output. • Recommendation : Whenever subsetting a data frame in a function, you should always use drop = FALSE Subsetting continued Boolean Algebra vs. Sets (Logical and Integer Subsetting) 1. Using integer subsetting is more effective when: • You want to find the first (or last) TRUE. • You have very few TRUEs and very many FALSEs; a set representation may be faster and require less storage. 2. which() - conversion from boolean representation to integer representation • Integer representation length : is always <= boolean representation length • Common mistakes : I. Use x[which(y)] instead of x[y] II. x[-which(y)] is not equivalent to x[!y] Subsetting with Assignment 1. All subsetting operators can be combined with assignment to modify selected values of the input vector. 2. Subsetting with nothing in conjunction with assignment : • Why : Preserve original object class and structure Recommendation: Avoid switching from logical to integer subsetting unless you want, for example, the first or last TRUE value df1[] <- lapply(df1, as.integer) which(c(T, F, T F)) -> 1 3 df1$col1[df1$col1 < 8] <- 0