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 :

Question Rstudio : unstack / renommer noms de colonnes


Sujet :

R

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Bioingénieur
    Inscrit en
    Décembre 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Belgique

    Informations professionnelles :
    Activité : Bioingénieur

    Informations forums :
    Inscription : Décembre 2015
    Messages : 10
    Points : 7
    Points
    7
    Par défaut Question Rstudio : unstack / renommer noms de colonnes
    Bonjour,

    Je suis débutant en RStudio et j'ai un problème avec la fonction "unstack". J'ai déjà fait plusieurs recherches sur Internet, mais je n'ai rien trouvé pour y remédier.
    Afin que vous compreniez bien ce que je veux faire, je vous envoie une partie des données que je dois traiter.

    À partir du fichier .txt (ci-joint), j'aimerais désassembler les données de "reflectance" en fonction des "lettreFiltres" dans un nouveau dataFrame. Voici le code pour y arriver.

    forumDeveloppez.txt

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    data <- read.table("forumDeveloppez.txt", header = TRUE) # lecture fichier
     
    unstackData <- unstack(data, reflectance ~ lettreFiltre) #unstack reflectance selon les lettres de filtre
    Mon problème est que le nom des colonnes de "unstackData" est "C", "D", ... , "X". Or, j'aimerais que le nom des colonnes reprenne à la fois le nom de la colonne initiale en plus du nom de la nouvelle variable : "reflectance_C", "reflectance_D",..., "reflectance_X".

    Est-il possible d'y arriver avec la fonction "unstack" ?
    Sinon, voyez-vous un moyen d'y arriver ?
    Cette question a-t-elle déjà été posée sur ce forum ?

    J'ai l'impression que c'est une bête question, si c'est le cas, je m'en excuse.

    D'avance, un tout grand merci pour votre aide.

  2. #2
    Membre expérimenté
    Inscrit en
    Novembre 2009
    Messages
    703
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 703
    Points : 1 311
    Points
    1 311
    Par défaut unstack / renommer noms de colonnes
    Bonjour,

    Tout d'abord merci d'avoir fourni un fichier test.

    Je ne sais pas s'il existe une option pour renommer les colonnes mais vous pouvez le faire a posteriori :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    mynames <- paste("reflectance", names(unstackData), sep="_")
    names(unstackData) <- mynames
    Cordialement,

  3. #3
    Membre éclairé
    Homme Profil pro
    Chercheur
    Inscrit en
    Décembre 2015
    Messages
    327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2015
    Messages : 327
    Points : 793
    Points
    793
    Par défaut
    Dans read.table, en utilisant l'argument col.names=c( "nom.col1", ..., "nom.colN") on peut renommer les colonnes avec ces nouveaux noms. Cependant, les nouveaux noms ne peuvent pas à ma connaissance être déduits des anciens. Donc la solution de mgdondon est celle à utiliser dans ce cas.

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Bioingénieur
    Inscrit en
    Décembre 2015
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Belgique

    Informations professionnelles :
    Activité : Bioingénieur

    Informations forums :
    Inscription : Décembre 2015
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    Un grand merci pour votre aide, c'est exactement ce que je voulais.

    Pour ceux que cela intéresse, la fonction "spread" est similaire à la fonction "unstack". Il faut juste installer library(tidyr).
    L'avantage de spread est qu'elle ré-assemble les 2 premières colonnes qu'on ne veut pas désassembler. Pour bien comprendre ce que fait la fonction, essayez le test avec le code ci-dessous et le fichier joint.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    data <- read.table("forumDeveloppez.txt", header = TRUE) # lecture fichier
     
    unstackData1 <- unstack(data, reflectance ~ lettreFiltre) #unstack reflectance selon les lettres de filtre
     
    library(tidyr)
    unstackData2 <- spread(data,lettreFiltre, reflectance, convert = TRUE) #désassemble les données de réflectance selon la lettre filtre du dossier data.
    Bonne journée

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

Discussions similaires

  1. [JTable] les noms des colonnes de s'affichent pas
    Par macben dans le forum Composants
    Réponses: 6
    Dernier message: 25/04/2008, 11h03
  2. [Firebird 1.5] nom des colonnes d'une table
    Par c0rwyn dans le forum SQL
    Réponses: 4
    Dernier message: 03/09/2004, 14h44
  3. [SWING][JTable]Cacher noms des colonnes
    Par Antunes dans le forum Composants
    Réponses: 2
    Dernier message: 28/06/2004, 11h48
  4. Noms de colonne dans une colonne
    Par Digirom dans le forum Langage SQL
    Réponses: 14
    Dernier message: 23/04/2004, 11h51
  5. Mauvais noms de colonnes lors d'une requête
    Par nmathon dans le forum Bases de données
    Réponses: 2
    Dernier message: 09/04/2004, 07h27

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