Måns Magnusson
Statistics and Machine learning
Department of computer and information science
Advanced R Programming
Måns Magnusson
Advanced R Programming
Måns Magnusson
Learn to
- Write programs
- Write performant code
- Solve (machine learning) problems using
Advanced R Programming
Måns Magnusson
Advanced R Programming
Måns Magnusson
Advanced R Programming
Måns Magnusson
Period: Week 1-2
Students work: Individually
Lab: Documented R file
Computer lab
Advanced R Programming
Måns Magnusson
Period: Week 3-7
Students work: In groups
Turn in: R package on github
Seminar
Advanced R Programming
Måns Magnusson
Topics
- Performant code: Writing quality code
- Linear algebra, Object orientation, Graphics
- Advanced I/O
- Performant code: Writing fast code
- Machine learning in R
Advanced R Programming
Måns Magnusson
Advanced R Programming
Måns Magnusson
Advanced R Programming
Måns Magnusson
Advanced R Programming
Måns Magnusson
Advanced R Programming
Måns Magnusson
Advanced R Programming
Måns Magnusson
Advanced R Programming
Måns Magnusson
Weekly mandatory labs/projects
deadline Wednesdays 18.00
Computer exam
Advanced R Programming
Måns Magnusson
Advanced R Programming
Måns Magnusson
Not much knowledge of software engineering
Can be slooooow
Advanced R Programming
Måns Magnusson
Variable type
Short
typeof()
R example
Integer
int
integer
1L
Real
num
double
1.2
Complex
cplx
complex
0+1i
Boolean
logi
logical
TRUE
Character
chr
character
"I <3 R"
coersion
coersion
Advanced R Programming
Måns Magnusson
Dimension
Homogenous data
Hetrogenous data
1
vector
list
2
matrix
data.frame
n
array
- Constructors:
- Name dimensions:
vector() list() ...
names() dimnames()
Advanced R Programming
Måns Magnusson
- Vectorized operations (element wise)
- Recycling
- Statistical functions
See reference card...
Advanced R Programming
Måns Magnusson
A
B
!A
A&B
A|B
In symbols:
Truth table:
TRUE
FALSE
FALSE
FALSE
TRUE
TRUE
TRUE
FALSE
TRUE
TRUE
FALSE
FALSE
TRUE
FALSE
FALSE
FALSE
TRUE
TRUE
FALSE
TRUE
In R:
Advanced R Programming
Måns Magnusson
In symbols:
In R:
all(A)
any(A)
which(A)
Advanced R Programming
Måns Magnusson
- Comparing homogenous data structures
- Return boolean data structure
a<b
In symbols:
In R:
a<=b
a!=b
a==b
a%in%b
Advanced R Programming
Måns Magnusson
- Use
- index by:
positive integers: include element(s)
negative integers: exclude element(s)
logical: include s
TRUE
[]
Advanced R Programming
Måns Magnusson
- Use
- Two dimensions
- Index as vectors
- Can reduce (drop class) to vector
[,]
Advanced R Programming
Måns Magnusson
- Use to access list elements
- Use to access list content
- Index as vectors
- Use to access list element by name
[]
[[]]
$
my_list <-
Advanced R Programming
Måns Magnusson
- Can be accessed both as a matrix and a list
Advanced R Programming
Måns Magnusson
- Change values in data structures
Advanced R Programming
Måns Magnusson
my_function_name <- function(x, y){
z <- x^2 + y^2
return(z)
}