Groupe`des`U+lisateurs`de`R` de`l`Université`Paris`Sud` Origine`des
Transcription
Groupe`des`U+lisateurs`de`R` de`l`Université`Paris`Sud` Origine`des
Origine'des'données' Groupe'des'U+lisateurs'de'R' de'l’Université'Paris'Sud' Lire'des'données' Données'txt'ou'csv' • S’appuie'sur'la'fonc+on'read.delim' read.table(file, header = FALSE, sep = "", quote = "\"'", dec = ".", row.names, col.names, as.is = !stringsAsFactors, na.strings = "NA", colClasses = NA, nrows = -1, skip = 0, check.names = TRUE, fill = !blank.lines.skip, strip.white = FALSE, blank.lines.skip = TRUE, comment.char = "#", allowEscapes = FALSE, flush = FALSE, stringsAsFactors = default.stringsAsFactors(), fileEncoding = "", encoding = "unknown", text) " :'fichiers'txt,'csv'' :'fichiers'xls,'xlsx'' :'Données'googledoc'' :'fichier'ncdf'(données'clima+ques)'' :'fichiers'dbf'(format'un'peu'ancien'de'dBase'ou' FoxPro)'' :'Données'SQL'(accès'à'des'bases'de'données':' je'maîtrise'mal)'' ' Données'txt'ou'csv' • Read.delim)est)préformaté)sous)la)forme:) " read.csv(file, header = TRUE, sep = ",", quote="\"", dec=".", fill = TRUE, comment.char="", ...)" " read.csv2(file, header = TRUE, sep = ";", quote="\"", dec=",", fill = TRUE, comment.char="", ...) " " read.delim(file, header = TRUE, sep = "\t", quote="\"", dec=".", fill = TRUE, comment.char="", ...)" " read.delim2(file, header = TRUE, sep = "\t", quote="\"", dec=",", fill = TRUE, comment.char="", ...) " Les'problèmes'classiques' • Ges+on'du'point'décimal' Localiser'le'fichier' • file.choose()'peut'être'indiqué' dec="." ou dec=","" • Ges+on'des'séparateurs'de'champs' Sep="\t"'ou'sep=";"" ' • Penser'à'affecter'la'lecture'dans'un'object' Fichier'<:'read.delim(file.choose())' ' • Ges+on'de'l’entête' Header=TRUE'ou'header=FALSE' '' Qu’ob+ent:on'?' >'Fichier' '''X01.01.12'X154' 1'''02/01/12''155' 2'''03/01/12''156' 3'''04/01/12''157' 4'''05/01/12''158' 5'''06/01/12''159' 6'''07/01/12''160' 7'''08/01/12''161' 8'''09/01/12''162' 9'''10/01/12''163' 10''11/01/12''164' 11''12/01/12''165' 12''13/01/12''166' 13''14/01/12''167' 14''15/01/12''168' 15''16/01/12''169' 16''17/01/12''170' La'première'donnée'a'été'interprétée'comme'le' nom'des'colonnes.'C’est'bien'le'défaut'de' read.delim()' ' read.delim(file,'header'='TRUE,'sep'='"\t",' quote="\"",'dec=".",'fill'='TRUE,' comment.char="",'...)' ' Donc'il'faut'faire:' ' Fichier'<:'read.delim(file.choose(),'header=FALSE)' Qu’ob+ent:on'?' >'Fichier' '''''''''V1''V2' 1''01/01/12'154' 2''02/01/12'155' 3''03/01/12'156' 4''04/01/12'157' 5''05/01/12'158' 6''06/01/12'159' 7''07/01/12'160' 8''08/01/12'161' 9''09/01/12'162' 10'10/01/12'163' 11'11/01/12'164' 12'12/01/12'165' 13'13/01/12'166' 14'14/01/12'167' 15'15/01/12'168' 16'16/01/12'169' 17'17/01/12'170' ' >'str(Fichier)' 'data.frame': '17'obs.'of''2'variables:' '$'V1:'Factor'w/'17'levels' "01/01/12","02/01/12",..:'1'2'3'4'5'6'7'8'9' 10'...' '$'V2:'int''154'155'156'157'158'159'160'161' 162'163'...' ' La'première'colonne'a'été'lue'comme'des' facteurs.' Il'faut'clairement'dire'ce'que'sont'les' colonnes' Qu’ob+ent:on'?' Fichier[,1]' '[1]'01/01/12'02/01/12'03/01/12'04/01/12'05/01/12' 06/01/12'07/01/12'08/01/12'09/01/12'10/01/12'11/01/12' 12/01/12'13/01/12'14/01/12'15/01/12'16/01/12'17/01/12' 17'Levels:'01/01/12'02/01/12'03/01/12'04/01/12'05/01/12' 06/01/12'07/01/12'08/01/12'09/01/12'10/01/12'11/01/12' 12/01/12'13/01/12'14/01/12'15/01/12'...'17/01/12' >'Fichier[,1]+1' '[1]'NA'NA'NA'NA'NA'NA'NA'NA'NA'NA'NA'NA'NA'NA'NA'NA' NA' Message'd'avis':' In'Ops.factor(Fichier[,'1],'1)':' ''+'ceci'n'est'pas'per+nent'pour'des'variables'facteurs' >'Fichier'<:'read.delim(file.choose(),'header=FALSE)' >'Fichier[,1]'<:'as.Date(Fichier[,1],'format("%d/%m/ %y"))' >'Fichier[,1]+1' '[1]'"2012:01:03"'"2012:01:04"'"2012:01:05"' "2012:01:06"'"2012:01:07"'"2012:01:08"' "2012:01:09"'"2012:01:10"'"2012:01:11"' "2012:01:12"'"2012:01:13"'"2012:01:14"' [13]'"2012:01:15"'"2012:01:16"'"2012:01:17"' "2012:01:18"'"2012:01:19"' Eviter'les'facteurs'!' • Rajouter'le'paramètre':' stringsAsFactors'='FALSE' ' Est'souvent'une'bonne'idée'!' ' La'conversion'des'dates:heures'peut'être'assez' fas+dieuse.'Par'exemple'pour'des'données'de'type' 1984311206'(31'décembre'1984'à'6'heures)'' ' fichier1[,2]'<:'as.POSIXct(strp+me(as.character(fichier1[, 2]),''%Y%m%d%H'))' ' Lire'des'données'd’Excel:'xls,'xlsx' • Il'faut'charger'la'bibliothèque'gdata' 'install.packages("gdata")' ' 'Azen+on,'sous'Windows'il'faut'soit'installer' PERL'soit'u+liser'une'commande'spéciale'qui' vous'est'donnée'au'cours'de'l’installa+on'du' package.' Lire'des'données'd’Excel:'xls,'xlsx' • Exemple'fichier'Excel' Lire'ce'fichier' • library(gdata)' • ess'<:'read.xls("Essai.xls")' • essx'<:'read.xls("Essai.xlsx")' • esss'<:'read.xls("Essai.xlsx",'sheet="lkj")' – Azen+on,'marche'très'mal.'U+lisez'plutôt'le' numéro'de'la'feuille'excel' • esss'<:'read.xls("Essai.xlsx",'sheet=2)' Lire'ce'fichier' • >'setwd("/Users/marcgirondot/Documents/Espace\'de\'travail\'R/ GURUps/Lire\'fichier\'R")' • >'esss'<:'read.xls("Essai.xlsx",'sheet=2)' • >'' • >'str(esss)' • 'data.frame':'3'obs.'of''2'variables:' • '$'Essai:'int''1'5'10' • '$'Tab'':'Factor'w/'3'levels'"2","4","</worksheet>":'2'1'3' • >'esss' • ''Essai''''''''''Tab' • 1'''''1''''''''''''4' • 2'''''5''''''''''''2' • 3''''10'</worksheet>' Les'données'vides'sous'Excel'issues'd’un'calcul' sont'mal'interprétées'par'read.xls' Lire'ce'fichier' >'esss' ''Essai''''''''''Tab' 1'''''1''''''''''''4' 2'''''5''''''''''''2' 3''''10'</worksheet>' On'peut'essayer'de'les' transformer'en'nombre'avec' >'as.numeric(esss[,2])' as.numeric()' [1]'2'1'3' ??'Comment'4'se'transforme:t’il'en'2'et'2'en'1'??' Les'facteurs'encore'!' • • • • >'str(esss)' 'data.frame': '3'obs.'of''2'variables:' '$'Essai:'int''1'5'10' '$'Tab'':'Factor'w/'3'levels'"2","4","</ worksheet>":'2'1'3' • • • • >'as.numeric(as.character(esss[,2]))' [1]''4''2'NA' Message'd'avis':' NAs'introduits'lors'de'la'conversion'automa+que'' Ou'alors,'dans'excel' • Ne'pas'mezre'de'cellules'vides'mais'avec'un' espace.'Alors:' esss'<:'read.xls("Essai2.xlsx",'sheet=2)'' esss' • Essai'Tab' • 1'''''1'''4' • 2'''''5'''2' >'str(esss)' 'data.frame': '3'obs.'of''2'variables:' • 3''''10''NA' '$'Essai:'int''1'5'10' '$'Tab'':'int''4'2'NA'
Documents pareils
Importer des données: la fonction read.table()
Décembre 2015
Quelques fonctions R permettant l’importation de données contenues dans des
fichiers avec des structures simples.