Daniel Vaulot
2021-10-12
1 - Introduction to R
2 - Data wrangling
3 - Data visualisation
4 - Analysis of metabarcoding data
Your turn...
Your turn...
Warning
Microbes course
print("Hello world")
[1] "Hello world"
print("Hello world")
[1] "Hello world"
Type directly in command window
Create a new script
Type in script window
> greeting = "Hello world"> print(greeting)
[1] "Hello world"
> greeting = "Hello world"> print(greeting)
[1] "Hello world"
> greeting = "Bonjour"> print(greeting)
[1] "Bonjour"
> x <- 1> y <- 2> x + y
[1] 3
> x <- 1> y <- 2> x + y
[1] 3
> z <- x + y> z
[1] 3
= can be used instead of <- but refrain from it (not good style)
> z = x + y
= can be used instead of <- but refrain from it (not good style)
> z = x + y
You can view the values of the objects in R-studio environment window (top-right)
> Z
> Z
> Z
Error in eval(expr, envir, enclos): objet 'Z' introuvable
Myvariable
, Myvariable1
, Myvariable.1
,Myvariable-01
are OK1Myvariable
, My-variable
, Myvariable@
are not OKcharacter: "Daniel", "This is a course in R", 'Joe Biden'
numeric: 2, 15.5, 10e-3
integer: 2L (the L tells R to store this as an integer)
date: 2018-02-25
logical: TRUE, FALSE
complex: 1+4i (complex numbers with real and imaginary parts)
character: "Daniel", "This is a course in R", 'Joe Biden'
numeric: 2, 15.5, 10e-3
integer: 2L (the L tells R to store this as an integer)
date: 2018-02-25
logical: TRUE, FALSE
complex: 1+4i (complex numbers with real and imaginary parts)
No data "NA"
Not a number "NaN" (e.g. division by zero)
Vector
List
Matrix
Data frames
Function
The basic R structure is a vector (think as a column in Excel): ⎡⎢⎣102030⎤⎥⎦
The basic R structure is a vector (think as a column in Excel): ⎡⎢⎣102030⎤⎥⎦
A vector can contain only a single element [10]
The basic R structure is a vector (think as a column in Excel): ⎡⎢⎣102030⎤⎥⎦
A vector can contain only a single element [10]
x <- 10 x
[1] 10
x <- c(10,20,30) x
[1] 10 20 30
x <- c(10,20,30) x
[1] 10 20 30
x <- 10:30 x
[1] 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
PoTU <- c("Jo", "Biden") PoTU
[1] "Jo" "Biden"
PoTU <- c("Jo", "Biden") PoTU
[1] "Jo" "Biden"
flags <- c(TRUE, FALSE, TRUE) flags
[1] TRUE FALSE TRUE
x[1]
[1] 10
x[1]
[1] 10
x[1:5]
[1] 10 11 12 13 14
x[1]
[1] 10
x[1:5]
[1] 10 11 12 13 14
x[-1]
[1] 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
Operator | Description |
---|---|
+ | addition |
- | subtraction |
* | multiplication |
/ | division |
^ or ** | exponentiation |
x %% y | modulus (x mod y) 5%%2 is 1 |
x %/% y | integer division 5%/%2 is 2 |
We are performing vector operations !
⎡⎢ ⎢ ⎢⎣123..⎤⎥ ⎥ ⎥⎦+⎡⎢ ⎢ ⎢⎣123..⎤⎥ ⎥ ⎥⎦=⎡⎢ ⎢ ⎢⎣246..⎤⎥ ⎥ ⎥⎦
Think about it as adding 2 columns in Excel.
Vector one element
x <- 1 y <- 2 z <- x + y z
[1] 3
Vector several elements
# Two instructions on the same line x <- 1:9; y <- 1:9 z <- x + y z
[1] 2 4 6 8 10 12 14 16 18
Vector several elements
# Two instructions on the same line x <- 1:9; y <- 1:9 z <- x + y z
[1] 2 4 6 8 10 12 14 16 18
Vector several elements
# Two instructions on the same line x <- 1:9; y <- 1:9 z <- x + y z
[1] 2 4 6 8 10 12 14 16 18
Use the other operators
Operator | Description |
---|---|
< | less than |
<= | less than or equal to |
> | greater than |
>= | greater than or equal to |
== | exactly equal to |
!= | not equal to |
!x | Not x |
x | y | x OR y |
x & y | x AND y |
isTRUE(x) | test if X is TRUE |
x <- TRUE y <- FALSE z1 <- x | y z2 <- x == y
x <- TRUE y <- FALSE z1 <- x | y z2 <- x == y
[1] TRUE
[1] FALSE
Do not mix
Functions perform specific task on objects
Functions perform specific task on objects
paste(first,last)
[1] "Jo Biden"
Functions perform specific task on objects
paste(first,last)
[1] "Jo Biden"
Functions take arguments and return an object called result
To know the arguments use ?
? paste() # Do not forget the parenthesis
Functions perform specific task on objects
paste(first,last)
[1] "Jo Biden"
Functions take arguments and return an object called result
To know the arguments use ?
? paste() # Do not forget the parenthesis
What happened ?
Functions perform specific task on objects
paste(first,last)
[1] "Jo Biden"
Functions take arguments and return an object called result
To know the arguments use ?
? paste() # Do not forget the parenthesis
What happened ?
If you write 3 times the same piece of code, then write a function...
my_sum <- function(a, b) { c <-a + b return (c) }
my_sum(10, 20)
[1] 30
my_sum(10, 20)
[1] 30
my_sum(a = 10, b = 20)
[1] 30
Most of the time you do not have to write functions because someone has already written one for what you want to do...
x <- 1:100 sum(x)
[1] 5050
Most of the time you do not have to write functions because someone has already written one for what you want to do...
x <- 1:100 sum(x)
[1] 5050
y <- rnorm(10, mean = 0, sd = 1) y
[1] 0.18698515 -1.90285690 1.06906481 -0.55548326 0.59540370 -0.04581134 0.38981055 0.92785608 -0.81038363 -0.08401824
mean(y)
[1] -0.02294331
sd(y)
[1] 0.8903981
mean(y)
[1] -0.02294331
sd(y)
[1] 0.8903981
Sample more points... 10,000 instead of 100
y <- rnorm(10000, mean = 0, sd = 1) mean(y)
[1] 0.003199685
sd(y)
[1] 1.003417
Histogram
library(graphics) hist(y)
Packages are set of functions that have a common goal
They are really the strength of R
And these are only the "official"" packages. You can find more on GitHub
Download on your computer the package you need
Install package stringr (to manipulate strings of characters)
To use functions from the package
package::function
stringr::str_c(first,last, sep= " ")
[1] "Jo Biden"
To use functions from the package
package::function
stringr::str_c(first,last, sep= " ")
[1] "Jo Biden"
library(stringr) str_c(first,last, sep= " ")
[1] "Jo Biden"
To use functions from the package
package::function
stringr::str_c(first,last, sep= " ")
[1] "Jo Biden"
library(stringr) str_c(first,last, sep= " ")
[1] "Jo Biden"
Sometimes functions from different libraries have similar names
1 - Introduction to R
2 - Data wrangling
3 - Data visualisation
4 - Analysis of metabarcoding data
Keyboard shortcuts
↑, ←, Pg Up, k | Go to previous slide |
↓, →, Pg Dn, Space, j | Go to next slide |
Home | Go to first slide |
End | Go to last slide |
Number + Return | Go to specific slide |
b / m / f | Toggle blackout / mirrored / fullscreen mode |
c | Clone slideshow |
p | Toggle presenter mode |
t | Restart the presentation timer |
?, h | Toggle this help |
Esc | Back to slideshow |