From 1f8121ccaab986377d97118df99771e23e03b7f7 Mon Sep 17 00:00:00 2001 From: Guilherme Borges Dias Date: Mon, 23 Sep 2024 16:39:03 +0200 Subject: [PATCH] update lesson, add figure --- images/data_structures.png | Bin 0 -> 71277 bytes slide_r_elements_2.Rmd | 108 +++++++++++++++++++++++-------------- 2 files changed, 68 insertions(+), 40 deletions(-) create mode 100644 images/data_structures.png diff --git a/images/data_structures.png b/images/data_structures.png new file mode 100644 index 0000000000000000000000000000000000000000..260b6a2cb609d3492295806a9de99edeb33bce51 GIT binary patch literal 71277 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 +
+-- + +.pull-left-50[ +![](images/data_structures.png) +] -dim | Homogenous | Heterogenous +.pull-right-50[ + +dimensions | Homogenous | Heterogenous ----|------------|----------------- -0d | n/a | n/a -1d | vectors | list -2d | matrices | data frame -nd | arrays | n/a +0 | n/a | n/a +1 | vectors | list +2 | matrices | data frame +n | arrays | n/a -- factors – special type +] --- name: atomic_vectors ## Atomic vectors -An *atomic vector*, or simply a *vector*, is a one dimensional data structure (a sequence) of elements of the same data type. +An *atomic vector*, or simply a *vector*, is a sequence of elements of the same data type. We build vectors using the function `c()` (combine). ```{r vector, echo=T} -vec <- c(7,2.3,4,12) +vec <- c(1, 2, 3) vec ``` -In R, even a single number is a one-element vector. You have to get used to think in terms of vectors... +In R, even a single number is a one-element vector. Get used to think in terms of vectors... --- name: atomic_vectors2 @@ -102,17 +111,20 @@ name: combining_vectors ## Combining two or more vectors Vectors can easily be combined: ```{r vec.comb, echo=T} -v1 <- c(1,3,5,7.56) +v1 <- c(1,2,3) v2 <- c('a','b','c') -v3 <- c(0.1, 0.2, 3.1415) +v3 <- c('do','re','mi') c(v1, v2, v3) ``` -Please note that after combining vectors, all elements became character. It is called a *coercion*. +Note that after combining numbers with characters, all elements became character. + +This is called a **coercion**. --- name: basic_vect_arithm ## Basic vector arithmetics +We can perform operations on vectors: ```{r vec.artihmetics, echo=T} v1 <- c(1, 2, 3, 4) v2 <- c(7, -9, 15.2, 4) @@ -128,10 +140,12 @@ name: recycling_rule ## Vectors – recycling rule ```{r vec.recycling, echo=T} v1 <- c(1, 2, 3, 4, 5) -v2 <- c(1, 2) +v2 <- c(0, 1) v1 + v2 ``` -Values in the shorter vector will be **recycled** to match the length of the longer one: v2 <- c(1, 2, 1, 2, 1) +Values in the shorter vector will be **recycled** (repeated) to match the length of the longer one. + +In this case, `v2 <- c(0, 1)` becomes `v2 <- c(0, 1, 0, 1, 0)` so that it can be added to v1. --- name: vec_indexing @@ -151,11 +165,16 @@ name: vec_indexing2 ## Vectors – indexing cted. And what happens if we want to retrieve elements outside the vector? ```{r vec.index.beyond, echo=T} +vec <- c('a', 'b', 'c', 'd', 'e') vec[0] # R counts elements from 1 -vec[78] # Index past the length of the vector +vec[10] # Positive index past the length of the vector +vec[-6] # Negative index past the length of the vector ``` -Note, if you ask for an element with index lower than the index of the first element, you will het an empty vector of the sme type as the original vector. -If you ask for an element beyond the vector's length, you get an NA value. +An index of **zero** will result in an empty vector of the same type as the original vector. + +A **positive** index beyond the vector's length will result in an `NA` value. + +A **negative** index beyond the vector's length will result in the full unchanged vector. Basically, R ignores your request. --- name: vec_indexing3 @@ -186,6 +205,7 @@ You can name elements of your vector: vec <- c(23.7, 54.5, 22.7) names(vec) # by default there are no names names(vec) <- c('sample1', 'sample2', 'sample3') +vec vec[c('sample2', 'sample1')] ``` @@ -197,7 +217,7 @@ You can return a vector without certain elements: ```{r vec.rm, echo=T} vec <- c(1, 2, 3, 4, 5) vec[-5] # without the 5-th element -vec[-(c(1,3,5))] # withoutelements 1, 3, 5 +vec[-(c(1,3,5))] # without elements 1, 3, 5 ``` --- @@ -300,12 +320,13 @@ name: seq R provides also a few handy functions to generate sequences of numbers: ```{r seq, echo=T} c(1:5, 7:10) # the ':' operator -(seq1 <- seq(from=1, to=10, by=2)) -(seq2 <- seq(from=11, along.with = seq1)) +seq1 <- seq(from=1, to=10, by=2) +seq(from=11, along.with = seq1) seq(from=10, to=1, by=-2) ``` --- +exclude: true name: printing_brackets ## A detour – printing with `()` @@ -326,8 +347,8 @@ while: --- name: seq2 -## Back to sequences -One may also wish to repeat certain value or a vector n times: +## Repeating sequences +One may also wish to repeat a value or a vector n times: ```{r rep, echo=T} rep('a', times=5) rep(1:5, times=3) @@ -338,7 +359,7 @@ rep(seq(from=1, to=3, by=2), times=2) name: random_seq ## Sequences of random numbers -There is also a really useful function `sample()` that helps with generating sequences of random numbers: +We can use `sample()` to generate sequences of random numbers: ```{r sample, echo=T} # simulate casting a fair dice 10x @@ -357,8 +378,7 @@ Now, let us see how this can be useful. We need more than 10 results. Let's cast ```{r dices, echo=T} # simulate casting a fair dice 10x fair <- sample(x = c(1:6), size=10e3, replace = T) -unfair <- sample(x = c(1:6), size=10e3, replace = T, - prob = myprobs) +unfair <- sample(x = c(1:6), size=10e3, replace = T, prob = myprobs) ``` --- @@ -400,6 +420,7 @@ sum(v1) # sum all the elements ``` --- +exclude: true name: vec_adv2 ## Vectors/sequences – more advanced operations 2 @@ -422,6 +443,7 @@ cummax(v1) # maximum up to i-th element ``` --- +exclude: true name: vec_pairwise_comp ## Vectors/sequences – pairwise comparisons @@ -455,12 +477,14 @@ name: factors ## Factors To work with **nominal** values, R offers a special data type, a *factor*: ```{r factor, echo=T} -vec <- c('giraffe', 'donkey', 'liger', - 'liger', 'giraffe', 'liger') +vec <- c('blue', 'yellow', 'purple', + 'yellow', 'yellow', 'blue') vec.f <- factor(vec) summary(vec.f) ``` -So donkey is coded as 1, giraffe as 2 and liger as 3. Coding is alphabetical. +The levels of a factor are coded alphabetically by default. So blue is coded as 1, purple as 2 and yellow as 3. + +Factors are really just a special type of integer vectors. ```{r factor2, echo=T} as.numeric(vec.f) ``` @@ -469,16 +493,15 @@ as.numeric(vec.f) name: factors2 ## Factors -You can also control the coding/mapping: +You can manually control the coding/mapping of factors and their labels: ```{r factor.coding, echo=T} -vec <- c('giraffe', 'donkey', 'liger', - 'liger', 'giraffe', 'liger') -vec.f <- factor(vec, levels=c('donkey', 'giraffe', - 'liger'), - labels=c('zonkey','Sophie','tigon')) +vec <- c('blue', 'yellow', 'purple', + 'yellow', 'yellow', 'blue') +vec.f <- factor(vec, levels=c('blue', 'purple', 'yellow', 'white'), + labels=c('sea','flower','sun','snow')) summary(vec.f) ``` -A bit confusing, factors... + --- name: ordered_fac @@ -486,9 +509,14 @@ name: ordered_fac ## Ordered To work with ordinal scale (ordered) variables, one can also use factors: ```{r ordinal, echo=T} -vec <- c('tiny', 'small', 'medium', 'large') +vec <- c('small', 'tiny', 'large', 'medium') factor(vec) # rearranged alphabetically -factor(vec, ordered=T) # order as provided +``` +-- +We can control the order: +```{r ordinal2, echo=T} +factor(vec, levels = c('tiny', 'small', 'medium', 'large'), + ordered=TRUE) # ordered as provided in the levels argument ```