<- read.csv(
dat file = "./data/data_archeo.csv", # le fichier
header = TRUE, # nom des colonnes : oui
row.names = 1, # nom des individus : oui
sep = ";", # séparateur de champ
dec = ",", # séparateur décimal
stringsAsFactors = TRUE,
na.strings = "" # données manquantes
)
6 Importer et contrôler des données
Nous allons désormais commencer à travailler sur un premier jeu de données (fictives !), disponible en cliquant ici.
6.1 Rappel : bien concevoir son répertoire de travail
Pour la suite de la formation, créez un projet Rstudio (menu “File > New Project”) associé à un répertoire donné sur votre ordinateur. Il devra pour l’instant être organisé sous la forme très minimale suivante :
.
├── analyses_archeo.R
├── data
│ └── data_archeo.csv
└── formation_R.Rproj
Autrement dit :
- un fichier
formation_R.Rproj
à la racine de ce dossier indique que ce dossier contient un projet Rstudio ; - le dosser
data
contiendra vos données (pour l’instant réduites à un seul fichier CSV) ; - le fichier de script
analyses_archeo.R
contiendra votre script R pour l’analyse du fichierdata_archeo.csv
.
6.2 Importer un fichier
En toute généralité, la fonction read.table()
permet d’importer tout fichier au format texte brut (par exemple les fichiers CSV ou TXT). Sa déclinaison read.csv()
est spécialisée dans les fichiers CSV, et est la manière canonique d’importer un fichier CSV en R.
Pour importer la feuille de données, on pourra par exemple exécuter :
Le jeu de données correspondant au fichier data_archeo.csv
sera désormais stocké dans l’objet R dat
.
Les valeurs par défaut des arguments de la fonction read.csv()
correspondent aux normes anglaises ou américaines (consulter son aide). Pour des fichiers respectant au contraire les normes françaises de mise en forme (présence du nom des colonnes, point-virgule comme séparateur de champ, virgule comme séparateur décimal), la variante read.csv2()
offre de meilleurs arguments par défaut et permet donc d’avoir à en spécifier un peu moins :
<- read.csv2(
dat file = "./data/data_archeo.csv",
row.names = 1,
stringsAsFactors = TRUE,
na.strings = ""
)
Les fonctions read.table()
et read.csv()
peuvent être lentes pour importer des fichiers très volumineux (par exemple des fichiers texte brut de plusieurs centaines de mégaoctets, comme on peut en croiser en génétique). Pour ces cas très spécifiques, la fonction fread()
du package {data.table}
permettra un import plus rapide et des manipulations plus efficaces.
6.3 Résumés et contrôles post-importation
Une fois le fichier importé il est indispensable de procéder à diverses vérifications afin de s’assurer que les données sont exemptes d’erreurs et ont été correctement interprétées par R.
On peut commencer par vérifier les dimensions du tableau de données :
dim(dat) # dimensions = nb lignes, nb colonnes
[1] 43 8
puis le nom des colonnes, pour vérifier qu’elles ont bien toutes été lues :
colnames(dat)
[1] "Site" "Sexe" "FM1"
[4] "TM6" "RM1" "Hypoplasie"
[7] "Presence_parure" "Orientation_corps"
On pourra également tester les fonctions suivantes, utiles pour vérifier les données :
str(dat) # contrôle du type des variables
head(dat) # affichage des 6 premières lignes
1:6, ] # même chose, de façon "manuelle" dat[
Enfin, il est vivement recommandé d’exécuter systématiquement (au moins pour des tableaux de taille raisonnable) la fonction suivante pour obtenir un résumé des données :
summary(dat)
Site Sexe FM1 TM6 RM1 Hypoplasie
A:21 F :19 Min. :393.7 Min. :36.13 Min. :200.7 Non:37
B:22 M :23 1st Qu.:409.6 1st Qu.:43.16 1st Qu.:222.9 Oui: 6
NA's: 1 Median :428.4 Median :47.97 Median :230.7
Mean :431.2 Mean :47.94 Mean :232.4
3rd Qu.:444.8 3rd Qu.:51.61 3rd Qu.:243.1
Max. :508.9 Max. :59.53 Max. :257.1
NA's :4 NA's :2
Presence_parure Orientation_corps
Non:27 Est :15
Oui:16 Nord : 8
Ouest:11
Sud : 9
En effet, cette fonction permet notament de détecter certaines erreurs de saisie dans les données (présence d’un min ou max aberrant, coquilles dans le nom des modalités des facteurs, variables reconnues par R dans un type incorrect, etc.).