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()

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.

Plus en détail