Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 8 sur 8
  1. #1
    Invité régulier
    Homme Profil pro Alban
    Inscrit en
    novembre 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Nom : Homme Alban
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : novembre 2012
    Messages : 11
    Points : 5
    Points
    5

    Par défaut fusion de colonnes

    Bonjour,

    Je dois fusionner 4 colonnes dans un tableau de données.

    Mes 2 premières colonnes sont des coordonnées et les 2 suivantes sont des jours et mois.

    J'ai eu plusieurs essais infructueux avec différentes fonctions qui par exemple ne prennent pas en compte les variables quali ou bien additionnent les 2 premières colonnes.

    Je vous mets les 8 1ières lignes de mon dataset pour visualiser :

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
     X.Y.month.day.FFMC.DMC.DC.ISI.temp.RH.wind.rain.area
    1             7,5,mar,fri,86.2,26.2,94.3,5.1,8.2,51,6.7,0,0
    2             7,4,oct,tue,90.6,35.4,669.1,6.7,18,33,0.9,0,0
    3           7,4,oct,sat,90.6,43.7,686.9,6.7,14.6,33,1.3,0,0
    4               8,6,mar,fri,91.7,33.3,77.5,9,8.3,97,4,0.2,0
    5           8,6,mar,sun,89.3,51.3,102.2,9.6,11.4,99,1.8,0,0
    6            8,6,aug,sun,92.3,85.3,488,14.7,22.2,29,5.4,0,0
    7           8,6,aug,mon,92.3,88.9,495.6,8.5,24.1,27,3.1,0,0
    8            8,6,aug,mon,91.5,145.4,608.2,10.7,8,86,2.2,0,0
    Merci,

    Alban.

  2. #2
    Modératrice

    Femme Profil pro Aline Deschamps
    Chargée de Statistiques
    Inscrit en
    juin 2010
    Messages
    519
    Détails du profil
    Informations personnelles :
    Nom : Femme Aline Deschamps
    Âge : 26
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chargée de Statistiques
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : juin 2010
    Messages : 519
    Points : 1 360
    Points
    1 360

    Par défaut

    Bonjour,

    Citation Envoyé par nanopriso Voir le message
    Je dois fusionner 4 colonnes dans un tableau de données.
    Personnellement, je n'ai pas bien compris ce que vous souhaitez faire : concaténer les données des 4 premières colonnes ensemble ? créer un vecteur/une colonne avec les éléments des 4 premières colonnes à la suite ? Autre chose ?


    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/ .

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

  3. #3
    Invité régulier
    Homme Profil pro Alban
    Inscrit en
    novembre 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Nom : Homme Alban
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : novembre 2012
    Messages : 11
    Points : 5
    Points
    5

    Par défaut

    Plus précisément, je souhaite rassembler les informations contenues dans les 4 premières colonnes en une seule colonne.

    Imaginons qu'on le fasse avec un séparateur "/", ça donnerait pour les 2 premières lignes:

    Code :
    1
    2
    3
      X Y month day.FFMC.DMC.DC.ISI.temp.RH.wind.rain.area
    1             7/5/mar/fri,86.2,26.2,94.3,5.1,8.2,51,6.7,0,0
    2             7/4/oct/tue,90.6,35.4,669.1,6.7,18,33,0.9,0,0
    Peu importe le nom de la nouvelle colonne créée. Il faut juste qu'elle regroupe les données des 4 premières colonnes.

    Alban.

  4. #4
    Membre confirmé
    Homme Profil pro Olivier Caelen
    Inscrit en
    août 2007
    Messages
    122
    Détails du profil
    Informations personnelles :
    Nom : Homme Olivier Caelen
    Localisation : Belgique

    Informations forums :
    Inscription : août 2007
    Messages : 122
    Points : 241
    Points
    241

    Par défaut

    Hello,
    Voici une proposition de solution:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    > df <- data.frame(c1=c(1,2,3,4),c2=c("a","b","c","d"),c3=c(6,7,8,9),c4=c("w","x","y","z"),c5=c("aaaa","bbbb","cccc","dddd"))
    > df
      c1 c2 c3 c4   c5
    1  1  a  6  w aaaa
    2  2  b  7  x bbbb
    3  3  c  8  y cccc
    4  4  d  9  z dddd
    > df2 <- data.frame(newCol=paste(df$c1,df$c2,df$c3,df$c4,sep="/"),c5=df$c5)
    > df2
       newCol   c5
    1 1/a/6/w aaaa
    2 2/b/7/x bbbb
    3 3/c/8/y cccc
    4 4/d/9/z dddd
    A++

  5. #5
    Invité régulier
    Homme Profil pro Alban
    Inscrit en
    novembre 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Nom : Homme Alban
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : novembre 2012
    Messages : 11
    Points : 5
    Points
    5

    Par défaut

    Merci de votre aide hoccha. On y est presque mais ce n'est pas tout à fait ça. J'aurais dû le préciser mais j'ai 517 lignes dans mon data.

    Donc pour
    Code :
    df <- data.frame(c1=c(1,2,3,4),c2=c("a","b","c","d"),c3=c(6,7,8,9),c4=c("w","x","y","z"),c5=c("aaaa","bbbb","cccc","dddd"))
    , comment concaténer les 517 lignes dans le vecteur ? J'ai essayé quelques manipulations, notamment avec cbind, mais ça ne semble pas efficace.

  6. #6
    Membre confirmé
    Homme Profil pro Olivier Caelen
    Inscrit en
    août 2007
    Messages
    122
    Détails du profil
    Informations personnelles :
    Nom : Homme Olivier Caelen
    Localisation : Belgique

    Informations forums :
    Inscription : août 2007
    Messages : 122
    Points : 241
    Points
    241

    Par défaut

    Hello,
    Je suis désolé mais je ne comprends pas bien la question .
    Dans mon data.frame (df), ll y a 4 lignes et 5 colonnes; ensuite (dans df2), je groupe les colonnes 1 à 4 pour former une nouvelle colonne (newCol).
    Si vos données sont dans un data.frame avec une colonne par variable alors ce type de code devrait aussi fonctionner avec 517 lignes.
    A++

  7. #7
    Modératrice

    Femme Profil pro Aline Deschamps
    Chargée de Statistiques
    Inscrit en
    juin 2010
    Messages
    519
    Détails du profil
    Informations personnelles :
    Nom : Femme Aline Deschamps
    Âge : 26
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chargée de Statistiques
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : juin 2010
    Messages : 519
    Points : 1 360
    Points
    1 360

    Par défaut

    nanopriso, la ligne de code df <- data.frame(c1=c(1,2,3,4),c2=c("a","b","c","d"),c3=c(6,7,8,9),c4=c("w","x","y","z"),c5=c("aaaa","bbbb","cccc","dddd")) donnée par hoccha sert juste à créer un dataframe "df" qui sert d'exemple (ainsi son code est reproductible par tout le monde).

    Dans votre cas, vous n'avez qu'à appliquer la commande df2 <- data.frame(newCol=paste(df$c1,df$c2,df$c3,df$c4,sep="/"),c5=df$c5) en remplaçant "df" par le nom de votre dataframe et "c1", "c2", etc, par les noms de votre 1ère, 2nde, etc, colonne.

    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/ .

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

  8. #8
    Invité régulier
    Homme Profil pro Alban
    Inscrit en
    novembre 2012
    Messages
    11
    Détails du profil
    Informations personnelles :
    Nom : Homme Alban
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : novembre 2012
    Messages : 11
    Points : 5
    Points
    5

    Par défaut

    Ça marche merci!

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •