Ouvrir des données issues d'un tableur avec R
Ouvrir et Exporter des données R
L'essentiel de cette page !
Ouvrir un tableau sous R est facile : on peut ouvrir un fichier texte avec read.table(), .csv avec read.csv2() ou même Excel ou Google sheets (voir plus bas).
Mais que faire pour manipuler le tableau une fois ouvert ? Il suffit d'aller voir l'aide correspondante :
1- Mettre en forme les données avant de les importer dans R
Les données que l'on charge sous R doivent être des data.frames, c'est à dire-présenter un certain nombre de colonnes de tailles égales.
Si les données sont issues d'un tableur, elles doivent être exportées au format texte (.csv, .txt ou .tsv).
sous Excel --> Faire Fichier et Enregister sous --> Type : Texte (séparateur : tabulation) (*.txt)
sous OpenOffice (LibreOffice) --> Faire Fichier et Enregister sous --> Type : Texte CSV (.csv) (*.csv) --> Cocher "Editer les paramètres du filtre" --> Puis sélectionner dans la fenêtre Export de fichier texte l'option "Séparateur de champ" {Tab}
sous Google sheets (Google docs) --> Fichier et Télécharger au format --> Valeurs séparées par des tabulations (.tsv, feuille active)
Les nombres à virgules (réels) ne sont pas reconnus par le logiciel R en tant que chiffre : il faut donc remplacer les "," par des points "." :
Cliquer-droit sur le fichier texte crée --> Ouvrir avec --> Bloc-notes
Faire remplacer (ctrl+H) et remplacer toutes les "," par des "."
2- Définir le répertoire source
Définir le répertoire courant (le dossier où se trouve le fichier de données que l'on désire ouvrir)
setwd("C:/Users/")
Afficher le répertoire courant
getwd()
Afficher les dossiers présents dans le répertoire courant
dir()
Afficher les fichiers présents dans le répertoire courant
list.files()
Créer un dossier
dir.create("nom_du_dossier")
Créer un fichier
file.create("nom_du_fichier")
Voir le contenu d'un fichier
file.show("nom_du_fichier")
Supprimer un fichier
file.remove("nom_du_fichier")
3- Ouvrir un tableau (data.frame)
Ouvrir un tableau
Il faut donner impérativement un nom au tableau que l'on ouvre (ici dans l'exemple file)
Il ne faut pas oublier l'extension du fichier dans le nom du fichier .txt ou .csv...
sep : est le séparateur qui sépare les données ("\t" implique que le séparateur est une tabulation)
header=T : cela implique que R va prendre en compte le titre des colonnes
dec pour indiquer que les , séparent les décimales
file = read.table("tab.txt", sep="\t", header=T, dec=",")
#Autre commande équivalente autorisant les longues chaînes de caractères (évite le message d'erreur plus de colonnes que de noms de colonnes
file = read.csv2("tab.txt", sep="\t", header=T)
# Commande intéressante, on peut tout simplement mettre file.choose() à la place du nom du tableau ==> cela ouvre l'explorateur : inutile alors de taper un nom complet et de définir un répertoire avec setwd()
file = read.table(file.choose (), sep="\t", header=T)
Changer le séparateur de données
file = read.table("tab.txt", sep="\t") # tabulations
file = read.table("tab.txt", sep="\n") # retour à la ligne
file = read.table("tab.txt", sep=";") # points virgules
file = read.table("tab.txt", sep=",") # virgules
Indiquer le séparateur des unités et des décimales
Par défaut, c'est un point
On peut en revanche, signaler à R de considérer les virgules comme des points
file = read.table("tab.txt", dec = ",")
Récupérer le contenu d'une colonne d'un tableau
Le nom du tableau doit alors précéder le nom de la colonne séparé de $ (dollar)
Attention : respecter scrupuleusement le nom des colonnes (majuscules et accents)
# Si le tableau s'appelle toto et qu'une colonne de toto s'appelle titre1
toto$titre1
# exemple
toto <- data.frame(t1=1:6, t2=rnorm(6))
colnames(toto) ; toto$t1
Voir les données !
View(toto)
4- Ouvrir directement un tableau tableau excel xlsx
install.packages("openxlsx")
library("openxlsx")
read.xlsx()
Remarque : si ce fichier présente des données de type texte, on peut activer leur reconnaissance de la façon suivante :
data <- read.xlsx(file.choose(),detectDates = FALSE)
Il faudra envisager une conversion du temps avec la fonction hms() pour éviter d'avoir une valeur de l'heure étrange.
library(hms)
data$hour <- hms(data$hour)
5- Ouvrir directement un tableau Google sheets en ligne
Cette fonctionnalité permet d'ouvrir un tableau mis à jour par d'autres utilisateurs
Exemple : un questionnaire google form.
# Source : http://www.opiniomics.org/reading-data-from-google-sheets-into-r/
install.packages("googlesheets4")
library(googlesheets4)
6- Exporter des données
Exporter des données avec la commande write.
Sauvegarder des données de type data.frame (tableau)
row.names : ne pas garder les noms des lignes
noms = c("bla","blo")
prenoms = c("bli","blu")
x = data.frame(noms, prenoms)
write.table(x,"output.txt",sep="\t", row.names = FALSE)
Exercice pour s'entraîner
LIEN POUR ALLER PLUS LOIN AVEC LES TABLEAUX R
Renommer les colonnes, appeler le contenu d'une colonne, etc. CLIQUER ICI