Lecture avancée de fichiers

Manipulation de données avec data.table en R

Matt Dowle, Arun Srinivasan

Instructors, DataCamp

Lire de grands entiers avec le type integer64

  • Par défaut, R ne peut représenter que des nombres ≤ 2^31 - 1 = 2147483647
  • Les grands entiers sont automatiquement lus en type integer64, fourni par le package bit64
ans <- fread("id,name\n1234567890123,Jane\n5284782381811,John\n")
ans
           id name
1234567890123 Jane
5284782381811 John
class(ans$id)
"integer64"
Manipulation de données avec data.table en R

Spécifier les classes de colonnes avec colClasses

str <- "x1,x2,x3,x4,x5\n1,2,1.5,true,cc\n3,4,2.5,false,ff"

ans <- fread(str, colClasses = c(x5 = "factor")) str(ans)
Classes 'data.table' and 'data.frame':    2 obs. of  5 variables:
 $ x1: int  1 3
 $ x2: int  2 4
 $ x3: num  1.5 2.5
 $ x4: logi  TRUE FALSE
 $ x5: facteur (2 niveaux) "cc","ff" : 1 2
Manipulation de données avec data.table en R

Spécifier les classes de colonnes avec colClasses

ans <- fread(str, colClasses = c("integer", "integer", 
                                 "numeric", "logical", "factor"))
str(ans)
Classes 'data.table' and 'data.frame':    2 obs. of  5 variables:
 $ x1: int  1 3
 $ x2: int  2 4
 $ x3: num  1.5 2.5
 $ x4: logi  TRUE FALSE
 $ x5: facteur (2 niveaux) "cc","ff" : 1 2
Manipulation de données avec data.table en R

Spécifier les classes de colonnes avec colClasses

str <- "x1,x2,x3,x4,x5,x6\n1,2,1.5,2.5,aa,bb\n3,4,5.5,6.5,cc,dd"
ans <- fread(str, colClasses = list(numeric = 1:4, factor = c("x5", "x6")))
str(ans)
Classes 'data.table' and 'data.frame': 2 obs. of 6 variables:
 $ x1: num  1 3
 $ x2: num  2 4
 $ x3: num  1.5 5.5
 $ x4: num  2.5 6.5
 $ x5: facteur (2 niveaux) "aa","cc" : 1 2
 $ x6: facteur (2 niveaux) "bb","dd" : 1 2
Manipulation de données avec data.table en R

L'argument fill

str <- "1,2\n3,4,a\n5,6\n7,8,b"
fread(str) 
V1 5 6
 7 8 b
Message d'avertissement :
Dans fread(str) :
  2 noms de colonnes détectés alors que les données ont 3 colonnes (fichier invalide).
  1 nom de colonne par défaut supplémentaire a été ajouté pour la première colonne, supposée
  contenir des noms de lignes ou un index.
  Utilisez setnames() ensuite si cette supposition est incorrecte,
  ou corrigez la commande d'écriture qui a créé ce fichier pour produire un fichier valide.
Manipulation de données avec data.table en R

L'argument fill

fread(str, fill = TRUE)
V1 V2 V3
 1  2
 3  4  a
 5  6
 7  8  b
Manipulation de données avec data.table en R

L'argument na.strings

Les valeurs manquantes sont souvent encodées ainsi : "999", "##NA" ou "N/A"

str <- "x,y,z\n1,###,3\n2,4,###\n#N/A,7,9"
ans <- fread(str, na.strings = c("###", "#N/A"))
ans
x  y  z
1 NA  3
2  4 NA
NA 7  9
Manipulation de données avec data.table en R

Passons à la pratique !

Manipulation de données avec data.table en R

Preparing Video For Download...