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 :

Troncature d'un graphique


Sujet :

R

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2019
    Messages : 9
    Par défaut Troncature d'un graphique
    Bonjour,

    Je travaille actuellement sur la spectroscopie infrarouge. J'ai des données d'absorbance en fonction du nombre d'onde allant de 3800 cm-1 à 900 cm-1. Une partie de ce spectre comprise entre 2800 et 1800 cm-1 ne m'intéresse pas dans l'étude de mes résultats je souhaiterais donc tronquer mes données entre ces 2 valeurs afin que cette partie du spectre ne vienne pas interférer dans mes résultats. J'ai essayé de séparer l'ensemble de mes données en 2 parties, Y1 comprenant les données supérieure à 2800 cm-1 et Y2 comprenant les données inférieure à 1800, puis de les joindre en un ensemble, Y3, grâce à la fonction "cbind". Cela ne fonctionne pas parce que Y1 et Y2 ne sont pas de la même longueur.
    Nom : Capture1 pour R.PNG
Affichages : 113
Taille : 5,6 Ko
    "Error in data.frame(..., check.names = FALSE) : les arguments impliquent des nombres de lignes différents : 423, 484"

    Je souhaiterais, si vous en avez la solution, que cela me génère directement ou avec peu d'étape le résultat escompté parce que je dois brasser une soixantaine de spectre infrarouge dans un même projet R.

    Sincèrement,

    Nicolas

  2. #2
    Membre émérite
    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 491
    Par défaut
    je pense que la fonction rbind est plus appropriée, autrement pour filtrer vos valeur par exemple avec le tidyverse

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    library(tidyverse)
    TEST_IR_pour_R <- TEST_IR_pour_R %>% filter(`Nombre d'onde`>1800  & `Nombre d'onde`>2800)
    de plus il vaut mieux éviter d'avoir des noms de colonnes avec des espaces et des caractères spéciaux comme l'apostrophe, il faut mieux renommer les colonnes

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2019
    Messages : 9
    Par défaut
    Citation Envoyé par xavier-Pierre Voir le message
    je pense que la fonction rbind est plus appropriée, autrement pour filtrer vos valeur par exemple avec le tidyverse

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    library(tidyverse)
    TEST_IR_pour_R <- TEST_IR_pour_R %>% filter(`Nombre d'onde`>1800  & `Nombre d'onde`>2800)
    de plus il vaut mieux éviter d'avoir des noms de colonnes avec des espaces et des caractères spéciaux comme l'apostrophe, il faut mieux renommer les colonnes
    C'est exactement ce que je recherchais (le package tidyverse). Je vous remercie. A bientôt sur les forums

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2019
    Messages : 9
    Par défaut
    La fonction filter me donne du soucis. A ce que je comprend (je débute sur R) la fonction fonctionne de la manière suivante :
    filter(Données d'intérêt , Condition de conservation des données)
    J'ai donc réaliser ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Test_IR_pour_R <- filter(Test_IR_pour_R, Test_IR_pour_R$`Nombre onde`<=1800, Test_IR_pour_R$`Nombre onde`>=2800)
    Ou de la manière proposée précédemment :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Test_IR_pour_R <- Test_IR_pour_R %>% filter(,Test_IR_pour_R$`Nombre onde`<1800 & Test_IR_pour_R$`Nombre onde`>2800)
    Malheureusement j'obtiens la réponse suivante : Error in match.arg(method) : 'arg' must be NULL or a character vector
    Je ne comprend pas d'où proviens cette erreur
    PS : J'ai modifié le nom d'une colonne (Nombre d'onde -> Nombre onde) comme conseillé

  5. #5
    Membre émérite
    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    491
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 491
    Par défaut
    bonjour cest juste une erreur de logique, tout d'abord la 2 ligne a une erreur de syntaxe il faut enlever la virgule: filter(,

    l'erreur est de séparer les 2 conditions par une virgule cela équivaut à un ET logique donc on a pas de valeur <1800 ET en même temps >2800 (je viens de voir que j'ai fait la même erreur car le & est le ET logique pour R) il faut utiliser le OU symbole "|"

    de plus il n'est pas utile de mettre Test_IR_pour_R$`Nombre onde` , `Nombre onde` suffit
    il aurait été plus simple de renommer la colonne nombre_onde car cela évite d'utiliser les backtips (obligatoire car un espace dans le nom de la colonne
    il existe le package janitor, qui avec la fonction clean_names avec le paramètre "snake" par exemple permet de simplifier les noms de colonnes , `Nombre onde` en nombre_onde

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    library(tidyverse)
    library(janitor)
    Test_IR_pour_R <-clean_names("snake") %>% filter(Test_IR_pour_R, nombre_onde<=1800 | nombre_onde>=2800)
    ##vérifie juste après le clean_names le nom de tes colonnes j'ai supposé que la colonne de ton dataframe initial se nommait "Nombre onde" et donc est transformé en nombre_onde

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Formalisation graphique des algorithmes
    Par David R. dans le forum Algorithmes et structures de données
    Réponses: 14
    Dernier message: 08/12/2012, 10h21
  2. Développement de plug-in -> vue graphique!
    Par yassine_23 dans le forum Eclipse Platform
    Réponses: 3
    Dernier message: 01/04/2003, 18h04
  3. Réponses: 3
    Dernier message: 09/02/2003, 01h09
  4. [RAVE][DELPHI7] Comment faire un graphique ?
    Par DFANDOR dans le forum Rave
    Réponses: 7
    Dernier message: 06/02/2003, 20h25
  5. Réponses: 10
    Dernier message: 27/08/2002, 23h24

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