Décroisé une table ( transformer plusieurs variables en une seul avec modalités)
Bonjour,
J'ai une table croisée et je veux la décroiser. je faisais cela avec la proc transpose sous SAS. et je sais que je peux faire le contraire avec xtabs de R.
je donne l'exemple suivant:
Code:
1 2 3 4 5 6 7
|
> madata = data.frame( id = paste('FR', 1:3, sep = '_'), S1 = 10:12 , S2 = 100:102, S3 = 1000:1002)
> madata
id S1 S2 S3
1 FR_1 10 100 1000
2 FR_2 11 101 1001
3 FR_3 12 102 1002 |
et je veux obtenir une table sous cette forme
Code:
1 2 3 4 5 6 7 8 9 10 11
|
ID Semaine valeur
FR1 S1 10
FR1 S2 100
FR1 S3 1000
FR2 S1 11
FR2 S2 101
FR2 S3 1001
FR3 S1 12
FR3 S2 102
FR3 S3 1002 |
en réalité j'ai 23000 Id et 52 semaine
Merci de votre aide.
Transposition de variables
Bonjour,
Je vous conseille les packages reshape et reshape2 qui sont très utiles pour transposer les données :
Code:
1 2 3 4 5 6
| > madata = data.frame(id = paste('FR', 1:3, sep = '_'), S1 = 10:12 , S2 = 100:102, S3 = 1000:1002)
> madata
id S1 S2 S3
1 FR_1 10 100 1000
2 FR_2 11 101 1001
3 FR_3 12 102 1002 |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| > library(reshape2)
> melt(madata,
+ id.vars=c('id'),
+ mesure.vars=c('S1':'S3'),
+ variable.name="semaine",
+ value.name="valeur")
id semaine valeur
1 FR_1 S1 10
2 FR_2 S1 11
3 FR_3 S1 12
4 FR_1 S2 100
5 FR_2 S2 101
6 FR_3 S2 102
7 FR_1 S3 1000
8 FR_2 S3 1001
9 FR_3 S3 1002 |
Cordialement,