Importez vos données
Les données sont initialement collectées, voire prétraitées, avec un logiciel, que ce soit un tableur ou un logiciel de statistiques. Chaque logiciel possédant son propre format de stockage, le plus simple est d’échanger les données par un format commun à tous, c’est-à-dire le format texte (extension .txt ou .csv).
Les
données sont en général contenues dans un fichier avec les individus en
lignes et les variables en colonnes. Le format texte est constitué de
données qui sont toutes séparées par un séparateur de colonnes. Par exemple, si vous considérez le fichier suivant,
il regroupe la mesure de quatre variables (âge, sexe, taille et poids)
pour plusieurs individus et le séparateur de colonnes utilisé est le ; . La première colonne représente l’identifiant
des individus, ici leur prénom : tous les prénoms doivent donc être
différents. Cet identifiant est en général une chaîne de caractères ou
le numéro de l’individu. Dans certains cas, les individus n’ont pas
d’identifiant et/ou les variables n’ont pas de nom. Dans ce cas, les
identifiants seront juste les numéros de ligne de l’individu et les
variables seront définies de V1 à Vn , avec n le nombre de colonnes du fichier texte.
Pour pouvoir lire un fichier texte, il suffit d’utiliser la fonction read.table :
dt1 <- read.table("dataframe1.txt", sep=";", row.names=1, header=TRUE)
dt1
# age sexe taille poids
# Raoul 21 M 172 80
# Fred 22 M 185 85
# Dominique 20 F 179 75
# Rachel 22 F 165 69
Les arguments classiques de cette fonction sont :
sep: permet d’indiquer à R le caractère qui sépare les colonnes au sein du fichier texte. Ici l’on précise que c’est;, mais pour un espace, on utilise" ", et pour une tabulation"\t".header: indique si la première ligne contient ou non les intitulés des variables. Par définition, cet argument est à FALSE (c’est-à-dire qu’il n’ira pas chercher par défaut les noms des colonnes dans la première ligne ; il faut lui attribuer la valeur TRUE pour changer cela).dec: indique le séparateur décimal, par défaut à.. Si vous utilisez un fichier issu par exemple d’un tableur Excel français, il se peut que vous ayez à changer cet argument à,.row.names: indique si une colonne contient les identifiants des lignes. Lorsqu’il n’y a pas de nom de colonnes, R les crée en attribuant à chaque individu son numéro de ligne.
Quelquefois, il peut arriver que certaines informations soient manquantes dans votre fichier texte, pour différentes raisons. Dans ce cas-là, vous l’aurez surement deviné, R remplace la valeur par un NA . Considérons le fichier ozone.csv ; nous l’importons :
ozone <- read.table("ozone.csv",sep=";",header=TRUE,dec=",", row.names=1)
dim(ozone)
# [1] 112 13
ozone[1:3, ]
# maxO3 T9 T12 T15 Ne9 Ne12 Ne15 Vx9 Vx12 Vx15 maxO3v vent pluie
# 601 87 15.6 18.5 18.4 4 4 8 0.6946 -1.7101 -0.6946 84 Nord Sec
# 602 82 17.0 18.4 17.7 5 5 7 -4.3301 -4.0000 -3.0000 87 Nord Sec
# 603 92 15.3 17.6 19.5 2 5 4 2.9544 1.8794 0.5209 82 Est Sec
L’option quote
(non utilisée dans notre exemple) permet de contrôler les caractères
qui entourent éventuellement une chaîne de caractères. Par défaut, il
s’agit du double ou du simple guillemet. Pour d’autres options
permettant de contrôler finement l’importation, on se reportera à l’aide
de la fonction read.table , accessible via la commande ?read.table .
Exporter dans un fichier externe
Un résultat se présente la plupart du temps sous la forme d’un tableau et nous allons donc exporter celui-ci. L’exportation du tableau est très simple :
write.table(tableau,"monfichier.csv",sep=";",row.names=FALSE)
L’objet tableau est exporté dans le fichier monfichier.csv
à l’endroit où R travaille. On peut bien sûr spécifier un chemin
particulier. L’exportation ci-dessus permet de contrôler le séparateur
de colonne fixé à ; et le nom du fichier monfichier.csv .
Il est possible de contrôler d’autres options comme :
col.names: permet de garder les noms des colonnes dans le format d’exportation. Par
défaut,col.names= TRUE, les noms des colonnes sont donc stockés dans la première ligne.row.names: permet de garder les identifiants de chaque individu dans le fichier exporté. Par défaut,row.names= TRUE.quote: permet de définir si les chaînes de caractères sont délimitées par des guillemets ou non. Par défaut,quote= TRUE.dec: permet de définir le séparateur décimal qui est par défaut à..na: permet de définir la chaîne de caractères qui va remplacer les valeurs manquantes et la chaîne de caractères qui est par défaut à"NA".
Ainsi, pour exporter sans nom de lignes ou de colonnes ni guillemets et avec un séparateur tabulation, nous utilisons :
ozoneR <- ozone[1:4,c("maxO3","T9","vent")]
write.table(ozoneR,"montableau.txt",row.names=F,col.names=F,quote=F,sep='\t')
Exporter des données en .txt , .csv ou autre est la meilleure solution
si vous souhaitez pouvoir accéder à ces données avec un autre
logiciel/langage d’analyse, comme Python. Cependant, cette solution ne préserve pas la structure des données, comme le type de la colonne ( numeric , character ou factor ). Pour ce faire, les données doivent être exportées dans un format de données R.
Exporter en format RDS
Il est possible de sauvegarder des objets R en utilisant la fonction saveRDS . Créons une liste et sauvegardons-la :
x <- c("a","a","b","c")
X <- matrix(1:8,ncol=4)
y <- c(T,T,T,F,F)
z <- matrix(c("A","B","C","D"),ncol=2)
maliste <- list(comp1=x,comp2=X,comp3=y,element4=z)
maliste
# $comp1
# [1] "a" "a" "b" "c"
#
# $comp2
# [,1] [,2] [,3] [,4]
# [1,] 1 3 5 7
# [2,] 2 4 6 8
#
# $comp3
# [1] TRUE TRUE TRUE FALSE FALSE
#
# $element4
# [,1] [,2]
# [1,] "A" "C"
# [2,] "B" "D"
saveRDS(maliste,"maliste.rds")
Ainsi, la liste maliste est maintenant stockée dans un fichier RDS, facilement récupérable via la fonction readRDS :
maliste2 <- readRDS("maliste.rds")
maliste2
# $comp1
# [1] "a" "a" "b" "c"
#
# $comp2
# [,1] [,2] [,3] [,4]
# [1,] 1 3 5 7
# [2,] 2 4 6 8
#
# $comp3
# [1] TRUE TRUE TRUE FALSE FALSE
#
# $element4
# [,1] [,2]
# [1,] "A" "C"
# [2,] "B" "D"
En résumé
Vous pouvez exporter vos données/objets en R :
soit via un fichier externe, comme un fichier
.csv, ou un fichier.txt, pour ensuite les réimporter via un autre langage/logiciel d’analyse ;soit via un format propre à R (RDS ou RData) permettant de conserver le format et le type des données/objets.