lire fichier excel

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Aurelie Duhec
Messages : 6
Enregistré le : 17 Juil 2008, 07:02

lire fichier excel

Messagepar Aurelie Duhec » 17 Juil 2008, 11:53

Bonjour,

Je debute avec le logiciel R et je rencontre bien sur quelques difficultes.

Je souhaite lire un fichier excell. Pour cela j'ai installe le package 'xlsReadWrite', en :

- selectionnant "package" dans le menu de la console
- cliquant sur "Install package com from zip file...",
- cliquant sur fichier "xlsReadWrite_1.2.3
- dans "Load package" j'ai selectionner "xls.ReadWrite"

un message m'informe que mon package a bien ete pris en compte : "package 'xlsReadWrite' successfully unpacked"

je continu alors l'etape suivante comme expliquer dans HELP :

Usage

Code : Tout sélectionner

>read.xls( file,
+colNames = TRUE,
+sheet = 1,
+type = "data.frame",
+from = 1,
+rowNames = NA, colClasses = NA, checkNames = TRUE,
+dateTimeAs = "numeric",
+stringsAsFactors = default.stringsAsFactors() )

je remplace file par le nom de mon fichier.

Mais un messge m'indique que mon fichier est non valide!

A ce stade la je ne sais pas ce que j'ai mal ou pas fais.

Je vous serais reconnaissante pour votre aide,

Merci d'avance.
Aurelie D.

Aurélien Madouasse
Messages : 352
Enregistré le : 26 Fév 2007, 11:23

Messagepar Aurélien Madouasse » 17 Juil 2008, 12:06

Bonjour,

Est-ce que votre fichier est dans votre répertoire de travail? Pour obtenir le répertoire courant:

Code : Tout sélectionner

getwd()


Si ça n'est pas le cas il faut soit changer le répertoire courant avec setwd, soit préciser le chemin complet dans read.xls().

Ca pourrait aussi venir du fait que vous n'avez pas mis le nom du fichier entre guillemets.

Aurélien

Eric Pagot
Messages : 195
Enregistré le : 15 Fév 2007, 17:10

Messagepar Eric Pagot » 17 Juil 2008, 12:37

Pour cela j'utilise le package Rcmdr, c'est bien pratique car il y a un menu "importer des données". Excel en fait partie. En plus, on peut même choisir l'onglet qui nous intéresse...
Vétérinaire CTPA

Benoît Lamy
Messages : 75
Enregistré le : 09 Juil 2008, 07:57

Messagepar Benoît Lamy » 17 Juil 2008, 13:05

Pour importer des fichiers d'Excel, j'enregistre sous .csv, e.g monfichier.csv, ensuite je tape en R:
monfichier=read.table("lechemind'accès",sep=";",dec=",",header=T)
sep, c'est le séparateur. dec="," si vos chiffres décimaux en Excel sont tapées avec la virgule, et header=T pour préciser si la première ligne de votre fichier, si c'est un tableau, comporte le nom des colonnes.

Exemple:

Code : Tout sélectionner

tabledesprix=read.table(C:/lesprix.csv",sep=";",dec=",",header=T)

si le fichier correspondant est

Superficie Ville Prix
120 Paris 1350000
150 Lyon 980000
... ... ...

Bien noter le / inversé pour le chemin.

Renaud Lancelot
Messages : 2484
Enregistré le : 16 Déc 2004, 08:01
Contact :

Messagepar Renaud Lancelot » 17 Juil 2008, 13:07

Pour cela j'utilise le package Rcmdr, c'est bien pratique car il y a un menu "importer des données". Excel en fait partie. En plus, on peut même choisir l'onglet qui nous intéresse...

Merci: cette fonctionnalité est une contribution de plusieurs des modérateurs ;-). C'est juste un carrossage des fonctions du package RODBC. Une autre présentation est disponible dans le package ttool disponible sur ce forum.

Renaud

Dominique Soudant
Messages : 758
Enregistré le : 23 Avr 2008, 11:12
Contact :

Messagepar Dominique Soudant » 18 Juil 2008, 08:10

Pour un débutant, j'opterais plutôt pour un export au format texte avec tabulation comme séparateur et une lecture avec read.delim. Pour le nom du fichier, effectivement il faut bien faire attention aux "\" à remplacer par "/", sinon on peut aussi les doubler, "\\", ou utiliser la fonction file.path().

Renaud Lancelot
Messages : 2484
Enregistré le : 16 Déc 2004, 08:01
Contact :

Messagepar Renaud Lancelot » 18 Juil 2008, 08:12

C'est pour faciliter la vie aux débutants qu'on a développé ces interfaces. Le passage par un fichier texte a pas mal d'inconvénients, notamment pour les champs facteur / caractère, les dates, etc.

Renaud

Aurelie Duhec
Messages : 6
Enregistré le : 17 Juil 2008, 07:02

Re: lire fichier excel

Messagepar Aurelie Duhec » 18 Juil 2008, 08:29

Un grand merci pour vos suggestions.

Malheureusement j'en suis toujours au meme point.

J'ai verifie si mon fichier etait bien dans le repertoire de travail.
> getwd()
[1] "C:/Documents and Settings/g2/My Documents"

Mon fichier excel est place dans My Documents...est ce que cela veut dire qu'il est bien dans le repertoire de travail?

Je tente de lire mon fichier: j'ai un message d'erreur

read.xls("AClients_Rec_20080628",
+ colNames = TRUE,
+ sheet = 1,
+ type = "data.frame",
+ from = 1,
+ rowNames = NA, colClasses = NA, checkNames = TRUE,
+ dateTimeAs = "numeric",
+ stringsAsFactors = default.stringsAsFactors() )
Error in read.xls("AClients_Rec_20080628", colNames = TRUE, sheet = 1, :
Unexpected error. Message: Can't find the file "AClients_Rec_20080628"

Je precise le chemin d'acces :
>read.xls("C:/Documents and Settings/g2/My Documents/data.xls/"AClients_Rec_20080628.xlsx")
Error: unexpected symbol in "read.xls("C:/Documents and Settings/g2/My Documents/data.xls/"AClients_Rec_20080628.xlsx"

J'ai tente plusieurs maniere d'ecrire le chemin d'acces...sans resultat!

Merci
Aurelie D.

Dominique Soudant
Messages : 758
Enregistré le : 23 Avr 2008, 11:12
Contact :

Messagepar Dominique Soudant » 18 Juil 2008, 08:31

Renaud Lancelot a écrit :C'est pour faciliter la vie aux débutants qu'on a développé ces interfaces
C'est pour ça que j'importe mes données avec l'argument colClasses = "character". Mais bon, peut être qu'à l'instar d'un Linux vs. Windows on a là un sujet de flamewar, alors, interface ou pas, l'essentiel est d'arriver à faire ce que l'on veut :) .
Rcmdr ne marche plus en R 2.4.1.
AClients_Rec_20080628.xlsx
C'est vraiment le nom de ton fichier excel ? Dans le premier code tu ne spécifie pas l'extension ... y faut ou pas ?

Benoît Lamy
Messages : 75
Enregistré le : 09 Juil 2008, 07:57

Messagepar Benoît Lamy » 18 Juil 2008, 08:42

Ma remarque est peut-être idiote, mais ce ne serait pas la deuxième paire de guillemets qui fait planter?

read.xls("C:/Documents and Settings/g2/My Documents/data.xls/"AClients_Rec_20080628.xlsx")

En fait, je me demande même si tu ne devrais pas bazarder /data.xls" et garder:
read.xls("C:/Documents and Settings/g2/My Documents/AClients_Rec_20080628.xlsx")

A moins que read.xls soit incompatible avec des fichiers en .xlsx?

Ou sinon, essaye par le .csv comme je t'ai conseillé.

Aurelie Duhec
Messages : 6
Enregistré le : 17 Juil 2008, 07:02

Messagepar Aurelie Duhec » 18 Juil 2008, 10:55

BENOIT,

Precedement je ne me suis pas trompee sur la console pour ecrire le chemin d'acces...vous avez raison c'est certeinement la version 2007 qui ne lui plait pas.

Je suis passee en .csv :

TRL=read.table("C:/Documents and Settings/g2/My Documents",sep=",",header=T)
Error in file(file, "r") : cannot open the connection
In addition: Warning message:
In file(file, "r") :
cannot open file 'C:/Documents and Settings/g2/My Documents': Permission denied

TRL.csv=read.table("C:/Documents and Settings/g2/My Documents",sep=",",header=T)
Error in file(file, "r") : cannot open the connection
In addition: Warning message:
In file(file, "r") :
cannot open file 'C:/Documents and Settings/g2/My Documents': Permission denied


je vais convertir mon fichier xlsx en xls ! Je vais voir ce que ca va donner

Merci Beaucoup pour votre aide!
Aurelie D.

Aurelie Duhec
Messages : 6
Enregistré le : 17 Juil 2008, 07:02

Messagepar Aurelie Duhec » 18 Juil 2008, 11:19

Desole Benoit je viens de me rendre compte que j'ai ecris n'importe quoi! c'est la fatigue qui arrive!

En reprenant votre exemple voila ce que j'ecris:

TRL=read.table("C:/TRL.csv",sep=";",dec",",header=T)

Error: unexpected string constant in "TRL=read.table("C:/TRL.csv",sep=";",dec",""

Je suis en train de faire avec Rcmdr, mais cela m'ennuie de ne pas comprendre pourquoi ca ne fonctionne pas!

Merci beaucoup pour tout.
Aurelie D.

Renaud Lancelot
Messages : 2484
Enregistré le : 16 Déc 2004, 08:01
Contact :

Messagepar Renaud Lancelot » 18 Juil 2008, 12:01

1. Evitez d'utiliser le symbole "=" comme opérateur d'affectation. Préférer "<-" à la place. Cela peut expliquer certaines erreurs.

2. Utiliser TRUE (ou FALSE) au lieu de T (ou F).

D'autre part, aérer le code avec des espaces: cela facilite la lecture et permet de repérer des erreurs triviales. Votre commande devient alors:

Code : Tout sélectionner

TRL <- read.table("C:/TRL.csv", sep = ";", dec",", header = TRUE)


et on s'aperçoit immédiatement qu'il manque un "=" entre dec et ",".

CQFD...


Donc:

Code : Tout sélectionner

TRL <- read.table("C:/TRL.csv", sep = ";", dec = ",", header = TRUE)


et ça devrait aller mieux.

Renaud

Aurelie Duhec
Messages : 6
Enregistré le : 17 Juil 2008, 07:02

Messagepar Aurelie Duhec » 18 Juil 2008, 12:08

Voila voila c bon !! Enfin !

Bon c'etait une chose toute bete ...

- premierement il falait bien convertir le fichier xlsx en version 2003.
- ensuite il fallait suprimer les formules, voila ce qui me bloquait !

Merci pour tout
Aurelie D.

Benoît Lamy
Messages : 75
Enregistré le : 09 Juil 2008, 07:57

Messagepar Benoît Lamy » 18 Juil 2008, 12:10

Renaud Lancelot a écrit :1. Evitez d'utiliser le symbole "=" comme opérateur d'affectation. Préférer "<-" à la place. Cela peut expliquer certaines erreurs.



Ah?? J'utilise systématiquement le "=". Il ne faut pas?


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Google [Bot] et 1 invité