problème de lecture d'un fichier csv

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

Julien Demeaux
Messages : 49
Enregistré le : 23 Oct 2017, 22:24

problème de lecture d'un fichier csv

Messagepar Julien Demeaux » 28 Oct 2017, 03:12

Bonjour à tous,
Ceci est mon premier post (d'une longue série ??) et j'ai commencé à "jouer" avec R il y a environ 6-8 semaines.

J'ai un fichier csv avec une vingtaine de variable à traiter mais dès que je le charge en tant que dataframe (avec la fonction read.csv car c'est un fichier made in UK) toutes les variables numériques snt considérées comme des factor.
Il est à noter que dans certaines variables les données manquantes ne sont pas vides mais notées d'un tiret "-".
J'ai pensé essayer de nettoyer le fichier csv directement avec excel mais je ne peux pas car certaines variables sont des valeurs négatives et traiter le fichier en remplaçant les - par un espace vide rend positif toutes ces valeurs (j'espère que c'est clair).

Existe-t'il une solution pour forcer R à considérer une variable comme étant numérique ?
Toute autre solution que vous pourriez m'apporter est bien entendu aussi bienvenue !! :)

Merci

Florent Aubry
Messages : 324
Enregistré le : 25 Juin 2010, 10:21

Re: problème de lecture d'un fichier csv

Messagepar Florent Aubry » 28 Oct 2017, 07:54

En général, le problème provient que les nombres sont codés en utilisant la virgule comme délimiteur décimal (notation française) alors que R par défaut considère que le délimiteur décimal est le point (notation anglo-saxonne). Dans read.table, ceci est géré par l'argument dec qui vaut par défaut dec=".". Il suffit d'écrire dec="," pour lire comme nombre les chaînes de caractères numériques codées à la française. Si le codage et dec ne correspondent pas, R considère que ce sont des chaînes de caractères (si l'argument stringsAsFactors est FALSE), sinon comme des facteurs (option par défaut).

Pierre-Yves Berrard
Messages : 1029
Enregistré le : 12 Jan 2016, 23:30

Re: problème de lecture d'un fichier csv

Messagepar Pierre-Yves Berrard » 28 Oct 2017, 08:18

Utiliser l'argument suivant :

Code : Tout sélectionner

na.strings = "-"

(possibilité de mettre plusieurs valeurs)

Code : Tout sélectionner

na.strings = c("-", "")
PY

Julien Demeaux
Messages : 49
Enregistré le : 23 Oct 2017, 22:24

Re: problème de lecture d'un fichier csv

Messagepar Julien Demeaux » 28 Oct 2017, 23:14

Merci Pierre-Yves ! le na.strings() a bien "nettoyé" le fichier csv et mes variables numériques apparaissent maintenant comme telles.

Florent, la source de mon fichier est britannique, donc les délimitateurs décimaux sont tous codés avec un point.

Merci pour votre aide.


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité

cron