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 inférieurs ou égaux à 2^31 - 1 = 2147483647
  • Les grands entiers sont lus automatiquement comme type integer64, fourni par le paquet 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. de 5 variables :
 $ x1: int  1 3
 $ x2: int  2 4
 $ x3: num  1.5 2.5
 $ x4: logi  TRUE FALSE
 $ x5: Factor w/ 2 levels "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' et 'data.frame' :    2 obs. de 5 variables :
 $ x1: int  1 3
 $ x2: int  2 4
 $ x3: num  1.5 2.5
 $ x4: logi  TRUE FALSE
 $ x5: Factor w/ 2 levels "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' et 'data.frame' : 2 obs. de 6 variables :
 $ x1: num  1 3
 $ x2: num  2 4
 $ x3: num  1.5 5.5
 $ x4: num  2.5 6.5
 $ x5: Factor w/ 2 levels "aa","cc": 1 2
 $ x6: Factor w/ 2 levels "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, mais les données ont 3 colonnes (fichier invalide). 
  1 nom de colonne par défaut ajouté pour la première colonne, supposée être des noms de lignes ou un index. 
  Utilisez setnames() ensuite si cette supposition est erronée, 
  ou corrigez la commande d'écriture qui a créé le fichier afin d'obtenir 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 codé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...