IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

R Discussion :

Problème pour réaliser un beanplot


Sujet :

R

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 3
    Points : 1
    Points
    1
    Par défaut Problème pour réaliser un beanplot
    Bonjour à tous,

    Avant toute chose je tiens à préciser que je suis un débutant sur R (j'ai commencé à apprendre il y a une dizaine de jours en autodidacte) et que je compte l'utiliser que pour certaines tâches (essentiellement des boîtes à moustaches et des beanplot).

    Je vais travailler avec beaucoup de données (3000 lignes et une centaine de colonnes) que j'exporte de Excel via la librairie xlsx. J'utilise également la librairie beanplot pour les graphiques.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    read.xlsx2("donnees/test.xlsx",sheetIndex = 1,header=TRUE, colClasses="character")->Extraction
    J'extrais ensuite les colonnes qui m'intéressent (ici ce sont des concentrations d'entrée et de sortie) avec la commande suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Extraction$"nom de la colonne" -> mes
    Malheureusement il y a de nombreux trous dans mes données représentés par des / ou des cases vides. Je n'ai pas trouvé encore de commandes pour les enlever automatiquement donc je le fais manuellement (pourtant j'ai essayé pas mal de solutions mais ce n'est pas la question) de cette façon :

    Une fois trié, je regarde le nombre de "trous" et je les retire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mes[569:2878,drop=TRUE] ->mes
    Après je la transforme en vecteur numérique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    as.numeric(as.character(mes))-> mes
    Je fais de même avec la concentration en sortie que j'ai appelé mes2.

    Avec mes deux vecteurs mes et mes2 (qui sont les concentrations d'entrées et de sortie), j'arrive sans soucis à faire des boîtes à moustaches côte à côte pour les comparer.
    Cependant, je souhaite réaliser un graphique en violon avec à gauche de la ligne centrale les concentrations d'entrée et à droite les concentrations de sortie.

    Pour ceci j'utilise la commande suivante :

    et là j'ai le message d'erreur suivant : les longueurs des variables diffèrent (trouvé pour 'mes2')

    J'en ai conclu que c'est dû au fait que je n'ai pas le même nombre de données pour les deux (ce qui va m'embêter quand j'aurais réglé mon autre problème mais passons...) et j'ai voulu essayé en retirant le bon nombre de données dans l'un des deux vecteurs pour avoir le même nombre.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mes[24:2310, drop=TRUE]->mes
    Maintenant que mes deux vecteurs ont le même nombre d'éléments, je retente de faire mon beanplot et j'obtiens l'erreur suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bw.SJ(x, method = "dpi") : sample is too sparse to find TD
    J'ai essayé de faire ce beanplot avec le log de mes deux vecteurs mais j'obtiens le même message. Le soucis, c'est que mon maitre de stage m'a demandé de faire ce genre de beanplot et je ne vois pas comment m'en sortir avec mes données...

    Si jamais je n'ai pas été assez clair, je vous upload un fichier très très réduit avec juste deux colonnes avec les concentrations d'entrée et de sortie. test.xlsx

    Je m'excuse si mon problème n'est pas clair mais je ne voyais pas comment expliquer plus simplement...

    Je vous remercie de votre aide

    Bonne journée.

  2. #2
    Modératrice

    Femme Profil pro
    Statisticienne, Fondatrice de la société DACTA
    Inscrit en
    Juin 2010
    Messages
    893
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Statisticienne, Fondatrice de la société DACTA

    Informations forums :
    Inscription : Juin 2010
    Messages : 893
    Points : 2 673
    Points
    2 673
    Par défaut
    Bonjour,

    Désolée de ne pas répondre directement à votre question, mais voici déjà une piste pour traiter plus facilement les valeurs manquantes en R :

    1/ Utiliser le paramètre "na.strings" de la fonction d'import : pour cela il faut plutôt utiliser la fonction "read.xls" du package "gdata" (cette option n'est pas disponible il me semble avec la fonction "read.xlsx2" que vous utilisez...).
    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Extraction <- read.xls("donnees/test.xlsx", sheet = 1, header=TRUE, colClasses="character", na.strings = c("/", " "))
    2/ Récupérer la liste des valeurs manquantes (NA) en R grâce à la fonction test "is.na()" (fonctionne uniquement si les NA ont bien été identifiés grâce à l'étape précédente).
    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    mes <- Extraction$"nom de la colonne"
    valeurs_manquantes_a_supprimer <- which( is.na( mes ) )
    Bonne continuation


    Cordialement,


    A.D.

    Forum R
    Fournir le code utilisé (pensez aux balises code !), les packages nécessaires, ainsi qu'un court mais représentatif extrait du jeu de données et les éventuels messages d'erreur.
    Recherche d'informations concernant R : RSiteSearch / tutoriels : http://r.developpez.com/cours/ .

    Pensez également au bouton "Résolu" et à voter (en bas à droite des messages) lorsque vous avez obtenu une réponse satisfaisante.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Merci pour la réponse et les conseils !

    Je me sens rendu compte que je n'avais pas mis mes lignes de codes sous le bon format, excusez moi.

    J'ai essayé de récupérer mon fichier excel avec cet autre package avec la commande suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    read.xls("donnees/test.xlsx",verbose=FALSE,sheet = 1,header=TRUE, colClasses="character", na.strings=c("/"," "), perl="/usr/bin/perl")->Extraction
    Malheureusement cela ne fonctionne pas et j'obtiens le message d'erreur suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Error in findPerl(perl, verbose = verbose) : 
      perl executable not found. Use perl= argument to specify the correct path.
    Error in file.exists(tfn) : invalid 'file' argument
    Je ne comprends pas trop comment fonctionne l'argument perl... j'ai l'impression qu'il s'agit d'un exécutable à localiser mais impossible de le trouver.

    Je vais continuer à persévérer.

    Bonne journée

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    C'est de nouveau moi

    J'ai réussi au final à extraire plus facilement mes données sans toutes ces étapes. J'ai utilisé R studio et son importation de fichier excel incorporé qui permet de supprimer directement les valeurs NA. Du coup je n'ai plus qu'à réussir à réaliser mon graphique en violon !

    Bonne journée

Discussions similaires

  1. Problème pour réaliser une macro "de boucles" dans VBA
    Par philou7176 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/12/2008, 15h41
  2. problème pour réaliser un état
    Par popofpopof dans le forum IHM
    Réponses: 12
    Dernier message: 25/08/2008, 23h17
  3. Problème pour réaliser un executable
    Par Masmeta dans le forum C++Builder
    Réponses: 27
    Dernier message: 23/11/2006, 16h05
  4. Réponses: 2
    Dernier message: 22/01/2006, 01h11
  5. [CLASSPATH] problème pour réaliser la commande javac
    Par nana1 dans le forum Général Java
    Réponses: 3
    Dernier message: 25/10/2005, 15h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo