Restructuration de tableau

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

colombet murielle
Messages : 12
Enregistré le : 10 Sep 2006, 12:46

Restructuration de tableau

Messagepar colombet murielle » 31 Oct 2007, 15:30

Bonjour,

Voila en fait je voudrais restructurer mon tableau. Je ne sais pas si c'est possible ac R par contre. J'ai essaye ac Reshape mais soit je n'ai pas utilise les options d'une maniere correcte soit cette fonction ne m'est pas du tout utile.
Voici mon tableau actuel:

Code : Tout sélectionner

 > cas
          Country    sex   category X2006 X2005 X2004 X2003 X2002 X2001 X2000 X1999 X1998 X1997 X1996 X1995
1         Belgium   Male    obesity                 3                 4                                    
2         Belgium   Male overweight               2.2                                                      
3         Belgium Female    obesity               3.1                 6                                    
4         Belgium Female overweight               4.2                                                      
5          Cyprus   Male    obesity                       7                                                
6          Cyprus   Male overweight                       8                                                
7          Cyprus Female    obesity                       8                                                
8          Cyprus Female overweight                       8                                                
9  Czech Republic   Male    obesity                           9.5                 1               4.8      
10 Czech Republic   Male overweight                          8.21               1.1                        
11 Czech Republic Female    obesity                           7.4               1.4               6.6      
12 Czech Republic Female overweight                           7.8               1.9                        
 


et moi je voudrais un tableau de ce style

Code : Tout sélectionner

Country   sex       Annee Obesity  Overweight
belgium   Male      2006       ..             ..
belgium   Female   2006      ...             ...
belgium   Male      2005
belgium   Female   2005
.
.
.
Cyprus    Male       2006       ..             ..
Cyprus    Female    2006      ...             ...
Cyprus     Male      2005
Cyprus     Female   2005


est ce possible ac ce logiciel??


Merci pour vos reponses .


Murielle Colombet

Logez Maxime
Messages : 3138
Enregistré le : 26 Sep 2006, 11:35

Messagepar Logez Maxime » 01 Nov 2007, 10:53

Bonjour,


Je ne suis pas convaicu que tu peux arriver à faire ce que tu veux avec reshape. Essaie ça :

Code : Tout sélectionner

test <- by(cas,list(cas$Country,cas$sex),function(x) {auxi <- t(x[4:ncol(x)])
colnames(auxi) <- x$category[1:2]
auxi<- as.data.frame(auxi)
auxi <- cbind(rownames(auxi),auxi)
colnames(auxi)[1] <- "Annee"
auxi <- cbind(rep(as.character(x$Country)[1],nrow(auxi)),rep(as.character(x$sex)[1],nrow(auxi)),auxi)
colnames(auxi)[1:2] <- c("Country","sex")
auxi
}
)

test <- do.call("rbind",test)
test <- test[order(test[,1],test[,3],test[,2]),]


Maxime

colombet murielle
Messages : 12
Enregistré le : 10 Sep 2006, 12:46

Messagepar colombet murielle » 01 Nov 2007, 20:05

Merci beaucoup il faut que je fasse quelques modifs mais c'est ce que je voulais.

Je pensais pas qu'on pouvait restructurer des données facilement avec R. Je ne connaissais pas ces fonctions, je n'aurais pas trouve toute seule merci encore.

Murielle


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité