Précédent   Forum du club des développeurs et IT Pro > Autres langages > Autres langages > R
R Forum d'entraide sur la programmation en langage R
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 13/12/2012, 12h06   #1
nanopriso
Invité régulier
 
Homme Alban
Inscription : 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.
nanopriso est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2012, 13h17   #2
A. D.
Modératrice
 
Femme Aline Deschamps
Chargée de Statistiques
Inscription : juin 2010
Messages : 464
Détails du profil
Informations personnelles :
Nom : Femme Aline Deschamps
Âge : 25
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 : 464
Points : 1 283
Points : 1 283
Envoyer un message via Skype™ à A. D.
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.
A. D. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2012, 13h51   #3
nanopriso
Invité régulier
 
Homme Alban
Inscription : 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
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.
nanopriso est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2012, 14h21   #4
hoccha
Membre confirmé
 
Homme Olivier Caelen
Inscription : août 2007
Messages : 111
Détails du profil
Informations personnelles :
Nom : Homme Olivier Caelen
Localisation : Belgique

Informations forums :
Inscription : août 2007
Messages : 111
Points : 214
Points : 214
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++
hoccha est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 13/12/2012, 15h46   #5
nanopriso
Invité régulier
 
Homme Alban
Inscription : 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
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.
nanopriso est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2012, 16h04   #6
hoccha
Membre confirmé
 
Homme Olivier Caelen
Inscription : août 2007
Messages : 111
Détails du profil
Informations personnelles :
Nom : Homme Olivier Caelen
Localisation : Belgique

Informations forums :
Inscription : août 2007
Messages : 111
Points : 214
Points : 214
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++
hoccha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/12/2012, 18h01   #7
A. D.
Modératrice
 
Femme Aline Deschamps
Chargée de Statistiques
Inscription : juin 2010
Messages : 464
Détails du profil
Informations personnelles :
Nom : Femme Aline Deschamps
Âge : 25
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 : 464
Points : 1 283
Points : 1 283
Envoyer un message via Skype™ à A. D.
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.
A. D. est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 14/12/2012, 14h55   #8
nanopriso
Invité régulier
 
Homme Alban
Inscription : 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
Ça marche merci!
nanopriso est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 17h44.


 
 
 
 
Partenaires

Hébergement Web