Traditionnellement, les fichiers de données de petite taille sont disponibles au format .csv ou .txt
Warning
Même s’il est possible d’importer des données directement depuis RStudio, il est primordial de coder les imports pour rendre les études reproductibles.
Format omni-présent sur le web. Permet de représenter des données hiérarchiques.
Pour lire les fichiers json, on utilisera en priorité la librairie jsonlite
.
Possibilité de lire et écrire du json depuis R.
Format parquet, très utilisé pour le traitement des “big data”.
pandas.read_parquet
)Enfin, de nos jours, beaucoup de données d’analyse résident dans des bases de données, souvent dites relationnelles.
En R, le backend DBI
a été développé pour fournir une interface unique à de nombreux systèmes de bases de données ou data warehouse existants : mysql, postgresql, snowflake, etc.
#> mpg cyl disp hp drat wt qsec vs am gear carb
#> 1 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
#> 2 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
#> 3 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
#> 4 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
#> 5 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
#> 6 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
#> mpg cyl disp hp drat wt qsec vs am gear carb
#> 1 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
#> 2 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
#> 3 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
#> 4 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
#> 5 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
#> 6 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
En R, les data.frame sont un élément essentiel du succès du langage pour le traitement des données.
#> [1] "tbl_df" "tbl" "data.frame"
#> # A tibble: 4 × 14
#> name height mass hair_color skin_color eye_color birth_year sex gender
#> <chr> <int> <dbl> <chr> <chr> <chr> <dbl> <chr> <chr>
#> 1 Luke Sky… 172 77 blond fair blue 19 male mascu…
#> 2 C-3PO 167 75 <NA> gold yellow 112 none mascu…
#> 3 R2-D2 96 32 <NA> white, bl… red 33 none mascu…
#> 4 Darth Va… 202 136 none white yellow 41.9 male mascu…
#> # ℹ 5 more variables: homeworld <chr>, species <chr>, films <list>,
#> # vehicles <list>, starships <list>
#> name height mass hair_color skin_color eye_color birth_year sex
#> 1 Luke Skywalker 172 77 blond fair blue 19.0 male
#> 2 C-3PO 167 75 <NA> gold yellow 112.0 none
#> 3 R2-D2 96 32 <NA> white, blue red 33.0 none
#> 4 Darth Vader 202 136 none white yellow 41.9 male
#> gender homeworld species
#> 1 masculine Tatooine Human
#> 2 masculine Tatooine Droid
#> 3 masculine Naboo Droid
#> 4 masculine Tatooine Human
#> films
#> 1 A New Hope, The Empire Strikes Back, Return of the Jedi, Revenge of the Sith, The Force Awakens
#> 2 A New Hope, The Empire Strikes Back, Return of the Jedi, The Phantom Menace, Attack of the Clones, Revenge of the Sith
#> 3 A New Hope, The Empire Strikes Back, Return of the Jedi, The Phantom Menace, Attack of the Clones, Revenge of the Sith, The Force Awakens
#> 4 A New Hope, The Empire Strikes Back, Return of the Jedi, Revenge of the Sith
#> vehicles starships
#> 1 Snowspeeder, Imperial Speeder Bike X-wing, Imperial shuttle
#> 2
#> 3
#> 4 TIE Advanced x1
tibble
surcharge les data.frame
classiquesprint
, meilleurs “défauts”tibble
surcharge les data.frame
classiquesprint
, meilleurs “défauts”#> [1] "character"
#> [1] "tbl_df" "tbl" "data.frame"
tibble
renvoie une data.frame à une colonnedata.frame
renvoie un vecteur#> # A tibble: 6 × 14
#> name height mass hair_color skin_color eye_color birth_year sex gender
#> <chr> <int> <dbl> <chr> <chr> <chr> <dbl> <chr> <chr>
#> 1 C-3PO 167 75 <NA> gold yellow 112 none masculi…
#> 2 R2-D2 96 32 <NA> white, blue red 33 none masculi…
#> 3 R5-D4 97 32 <NA> white, red red NA none masculi…
#> 4 IG-88 200 140 none metal red 15 none masculi…
#> 5 R4-P17 96 NA none silver, red red, blue NA none feminine
#> 6 BB8 NA NA none none black NA none masculi…
#> # ℹ 5 more variables: homeworld <chr>, species <chr>, films <list>,
#> # vehicles <list>, starships <list>
#> # A tibble: 87 × 4
#> name hair_color skin_color eye_color
#> <chr> <chr> <chr> <chr>
#> 1 Luke Skywalker blond fair blue
#> 2 C-3PO <NA> gold yellow
#> 3 R2-D2 <NA> white, blue red
#> 4 Darth Vader none white yellow
#> 5 Leia Organa brown light brown
#> 6 Owen Lars brown, grey light blue
#> 7 Beru Whitesun Lars brown light blue
#> 8 R5-D4 <NA> white, red red
#> 9 Biggs Darklighter black light brown
#> 10 Obi-Wan Kenobi auburn, white fair blue-gray
#> # ℹ 77 more rows
#> # A tibble: 87 × 4
#> name height mass bmi
#> <chr> <int> <dbl> <dbl>
#> 1 Luke Skywalker 172 77 26.0
#> 2 C-3PO 167 75 26.9
#> 3 R2-D2 96 32 34.7
#> 4 Darth Vader 202 136 33.3
#> 5 Leia Organa 150 49 21.8
#> 6 Owen Lars 178 120 37.9
#> 7 Beru Whitesun Lars 165 75 27.5
#> 8 R5-D4 97 32 34.0
#> 9 Biggs Darklighter 183 84 25.1
#> 10 Obi-Wan Kenobi 182 77 23.2
#> # ℹ 77 more rows
#> # A tibble: 87 × 14
#> name height mass hair_color skin_color eye_color birth_year sex gender
#> <chr> <int> <dbl> <chr> <chr> <chr> <dbl> <chr> <chr>
#> 1 Jabba D… 175 1358 <NA> green-tan… orange 600 herm… mascu…
#> 2 Grievous 216 159 none brown, wh… green, y… NA male mascu…
#> 3 IG-88 200 140 none metal red 15 none mascu…
#> 4 Darth V… 202 136 none white yellow 41.9 male mascu…
#> 5 Tarfful 234 136 brown brown blue NA male mascu…
#> 6 Owen La… 178 120 brown, gr… light blue 52 male mascu…
#> 7 Bossk 190 113 none green red 53 male mascu…
#> 8 Chewbac… 228 112 brown unknown blue 200 male mascu…
#> 9 Jek Ton… 180 110 brown fair blue NA <NA> <NA>
#> 10 Dexter … 198 102 none brown yellow NA male mascu…
#> # ℹ 77 more rows
#> # ℹ 5 more variables: homeworld <chr>, species <chr>, films <list>,
#> # vehicles <list>, starships <list>
starwars %>%
group_by(species) %>%
summarise(
n = n(),
mass = mean(mass, na.rm = TRUE)
) %>%
filter(
n > 1,
mass > 50
)
#> # A tibble: 9 × 3
#> species n mass
#> <chr> <int> <dbl>
#> 1 Droid 6 69.8
#> 2 Gungan 3 74
#> 3 Human 35 81.3
#> 4 Kaminoan 2 88
#> 5 Mirialan 2 53.1
#> 6 Twi'lek 2 55
#> 7 Wookiee 2 124
#> 8 Zabrak 2 80
#> 9 <NA> 4 81
Les jointures: left_join
, right_join
, full_join
, inner_join
Concaténation de tables: bind_rows
, bind_columns
SQL
Vocabulaire des verbes tiré du SQL, voir par exemple : Ici
Élément important des tâches de manipulation de données, de nettoyage, de transformation, souvent basé sur les expressions régulières.
En R base, possibilité de manipuler des chaînes de caractères, mais :
Élément important des tâches de manipulation de données, de nettoyage, de transformation, souvent basé sur les expressions régulières.
En R base, possibilité de manipuler des chaînes de caractères, mais :
user friendly
: stringrSimple match :
“.” match tous les caractères
Escaping
avec le symbole \
:
\d
: match tous les symboles numériques\s
: caractères d’espacement\w
et \W
: mots^
et -
^
et -
stringr | base R |
---|---|
str_detect(string, pattern) | grepl(pattern, x) |
str_dup(string, times) | strrep(x, times) |
str_extract(string, pattern) | regmatches(x, m = regexpr(pattern, text)) |
str_extract_all(string, pattern) | regmatches(x, m = gregexpr(pattern, text)) |
str_length(string) | nchar(x) |
stringr | base R |
---|---|
str_locate(string, pattern) | regexpr(pattern, text) |
str_locate_all(string, pattern) | gregexpr(pattern, text) |
str_match(string, pattern) | regmatches(x, m = regexec(pattern, text)) |
str_order(string) | order(…) |
str_replace(string, pattern, replacement) | sub(pattern, replacement, x) |
str_replace_all(string, pattern, replacement) | gsub(pattern, replacement, x) |
stringr | base R |
---|---|
str_sort(string) | sort(x) |
str_split(string, pattern) | strsplit(x, split) |
str_sub(string, start, end) | substr(x, start, stop) |
str_subset(string, pattern) | grep(pattern, x, value = TRUE) |
str_to_lower(string) | tolower(x) |
str_to_title(string) | tools::toTitleCase(text) |
str_to_upper(string) | toupper(x) |
str_trim(string) | trimws(x) |
str_which(string, pattern) | grep(pattern, x) |
str_wrap(string) | strwrap(x) |
L’heure Unix ou heure Posix est une mesure du temps fondée sur le nombre de secondes écoulées depuis le 1er janvier 1970 00:00:00 UTC, hors secondes intercalaires. Elle est utilisée principalement dans les systèmes qui respectent la norme POSIX, dont les systèmes de type Unix, d’où son nom. C’est la représentation POSIX du temps.
Est-ce une date valide ?
UTC
Le temps universel coordonné ou UTC (en anglais : coordinated universal time) est une échelle de temps adoptée comme base du temps civil international par la majorité des pays du globe.
Les dates sont des objets très fréquents et essentiels dans de multiple projets de datascience :
Il est possible de manipuler des objets de date en R base, mais lubridate
propose une API plus consistante et accessible et peut faciliter vos traitements de données.
#> [1] 7
#> [1] "de_DE.UTF-8/de_DE.UTF-8/de_DE.UTF-8/C/de_DE.UTF-8/fr_FR.UTF-8"
#> [1] Samstag
#> 7 Levels: Sonntag < Montag < Dienstag < Mittwoch < Donnerstag < ... < Samstag
interval
: période temporelle entre deux datesduration
: durée définie en temps calendaire “humain” : en jours, en semaines, en mois..period
: durée définie en nombre de secondes