Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > SAS > SAS Base
SAS Base Forum d'entraide sur SAS base : étape data, procédures non statistiques, procédures non graphiques, SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/09/2008, 16h23   #1
Membre actif
 
Inscription : avril 2008
Messages : 526
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 526
Points : 169
Points : 169
Par défaut Question de transposition de table

Salut,

Je dispose d'une table de 8784 lignes et de 6 variables: A(année) M(mois) J(jour) H(hour) S(seamine) C(consommation).
Elle se présentent sous la forme :

A M J H S C

c'est à dire que je possède une variable consommation qui contient une valeur pour chaque heure de l'année 2000.
A est tjs égale à 2000
M varie de 1 à 12
j varie de 1 à 31 ou 30 ou 29 selon les mois
H varie de 0 à 23
S varie de 1 à 52

Je voudrais transposer ma table de sorte à avoir une colonne par semaine (donc 52 colonnes) avec dans chaque colonne les consommations à la suite des 7 jours de la semaine c'est à dire que chaque colonne ait les conso pour les heures de la forme suivante :

H
0
1
.
23
0
1
.
23
.
..
0
1
23

Merci
stefsas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2008, 16h34   #2
Expert Confirmé
 
Avatar de olivier.decourt
 
Homme Olivier Decourt
Formateur en informatique
Inscription : avril 2008
Messages : 1 482
Détails du profil
Informations personnelles :
Nom : Homme Olivier Decourt
Âge : 34
Localisation : France

Informations professionnelles :
Activité : Formateur en informatique
Secteur : Conseil

Informations forums :
Inscription : avril 2008
Messages : 1 482
Points : 2 866
Points : 2 866
Salut,
je ferais ça en 2 étapes : 1) créer une variable "jour de la semaine" qui manque encore à ta table, de manière à avoir une obs par jour de la semaine et par heure dans ta table en sortie ; 2) transposer avec un pivot sur ce fameux couple de variables, en utilisant le n° de semaine comme identifiant des nouvelles colonnes.
Concrètement :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
/* étape 1 */
DATA work.donnees ;
  SET ... ;
  jourSemaine = WEEKDAY(MDY(M,J,A)) ;
/* attention, 1=dimanche, 2=lundi, etc. ; on peut prévoir un format pour faire joli au final */
  numSemaine = COMPRESS("Semaine"!!PUT(S,Z2.)) ;
/* numSemaine, c'est juste pour faire joli */
RUN ;
PROC SORT DATA=work.donnees ;
  BY jourSemaine h ;
RUN ;
PROC TRANSPOSE DATA=work.donnees OUT=work.parSemaine ;
  BY jourSemaine h ;
  VAR c ;
  ID numSemaine ;
RUN ;
En espérant que cette fois j'ai bien compris la demande !
... et que le code est bon (parce que je ne l'ai pas testé).
Olivie
olivier.decourt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2008, 17h00   #3
Membre actif
 
Inscription : avril 2008
Messages : 526
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 526
Points : 169
Points : 169
Ok merci.

Derrière je ré-applique une proc means pour récupérer les moyennes.
J'ai mes résultats dans la sortie.Quel est l'option pour récupérer les résultats dans une table car le out pose problème?

Merci.
stefsas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2008, 17h04   #4
Expert Confirmé
 
Avatar de olivier.decourt
 
Homme Olivier Decourt
Formateur en informatique
Inscription : avril 2008
Messages : 1 482
Détails du profil
Informations personnelles :
Nom : Homme Olivier Decourt
Âge : 34
Localisation : France

Informations professionnelles :
Activité : Formateur en informatique
Secteur : Conseil

Informations forums :
Inscription : avril 2008
Messages : 1 482
Points : 2 866
Points : 2 866
Juste avant ta proc Means, tu écris :
Code :
ODS OUTPUT summary = work.maSortie ;
olivier.decourt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/09/2008, 17h13   #5
Membre actif
 
Inscription : avril 2008
Messages : 526
Détails du profil
Informations forums :
Inscription : avril 2008
Messages : 526
Points : 169
Points : 169
Ok super merci
stefsas est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h19.


 
 
 
 
Partenaires

Hébergement Web