Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > SAS > Débutez
Débutez Forum concentrant les premières questions que l'on se pose en tant que débutant
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 16/05/2011, 15h38   #1
Candidat au titre de Membre du Club
 
Inscription : novembre 2010
Messages : 28
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 28
Points : 11
Points : 11
Par défaut Multiplication de table/matrices : sans utiliser IML

Bonjour,

Y a t'il moyen de multiplier simplement des tables SAS entre elles dans une operation de type produit matriciel (quand les tables ont les dimensions requises pour une telle operation)

PS : je n'ai pas de license pour le module IML. Je cherche donc a y arriver autrement qu'avec une proc IML.

Merci bp !
dachboden est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 17h25   #2
Membre Expert
 
Avatar de MEGAMIND2
 
Homme Brice Beare
Paris
Inscription : janvier 2011
Messages : 956
Détails du profil
Informations personnelles :
Nom : Homme Brice Beare
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Paris

Informations forums :
Inscription : janvier 2011
Messages : 956
Points : 1 366
Points : 1 366
Si tu veux faire un produit cartésien, tu peux joindre les deux tables tout simplement (pas de left join, inner,...) avec du proc sql.
MEGAMIND2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 17h32   #3
Membre Expert
 
Homme
Biostatisticien
Inscription : juin 2009
Messages : 1 143
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Irlande

Informations professionnelles :
Activité : Biostatisticien
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : juin 2009
Messages : 1 143
Points : 1 760
Points : 1 760
Apparemment(à ce que je comprends) Dachboden cherche plutot à faire un produit matriciel. Et c'est clair, la proc iml est faite pour ca

Je ne suis pas sur que sas puisse lire deux sources d'information simultanément dans une table. C'est des grosses matrices que tu veux multiplier? Tu peux toujours envisager de passer par des macros variables, mais ca risque d'être fumeux... Il y a peut être des logiciels plus appropriés, ou peut être peux tu résoudre ton problème sous sas sans passer par du matriciel...
Manoutz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 18h08   #4
Membre Expert
 
Avatar de MEGAMIND2
 
Homme Brice Beare
Paris
Inscription : janvier 2011
Messages : 956
Détails du profil
Informations personnelles :
Nom : Homme Brice Beare
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Paris

Informations forums :
Inscription : janvier 2011
Messages : 956
Points : 1 366
Points : 1 366
Autant pour moi.
Avec la formule du produit matriciel, tu peux l'implémenter sous SAS dans un data set.
MEGAMIND2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 19h18   #5
Expert Confirmé
 
Avatar de olivier.decourt
 
Homme Olivier Decourt
Formateur en informatique
Inscription : avril 2008
Messages : 1 467
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 467
Points : 2 823
Points : 2 823
Il faudrait que tu regardes du côté de la proc SCORE (dans SAS/STAT). Ca résoud certains cas de produits matriciels, pas tous.
olivier.decourt est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/05/2011, 10h40   #6
Candidat au titre de Membre du Club
 
Inscription : novembre 2010
Messages : 28
Détails du profil
Informations forums :
Inscription : novembre 2010
Messages : 28
Points : 11
Points : 11
Oui !
Si TableA(n lignes,j colonnes) et TableB(j lignes,k colonne) doivent être multipliées on peut le faire avec la proc score a condition de procéder au manipulation suivantes (en gros):

1) transposer TableB en TableB_transpo : A la différence du produit matriciel classique on multiplie TableA(n lignes,j colonnes) et TableB_transpo(k lignes,j colonne)
2) Les colonnes de TableA et de TableB_transpo doivent avoir les mêmes noms pour être certains de les apparier correctement lors du produit matriciel (sinon par défaut elles sont multipliées dans l'ordre dans lequel elle apparaissent dans les tables)
3) Ajouter des colonne de type character aux nom suivants dans TableB_transpo: _TYPE_ et _NAME_
4) Dans TableB_transpo, _TYPE_ doit valoir 'SCORE' et _NAME_ peut valoir n'importe quoi. (ca sera le nom de la colonne donnant le résultat du produit matriciel)


Ensuite on fait Proc score
Code :
1
2
proc score  DATA = TableA score = TableB_transpo
out=Produit_AB ; run ;
ET ca marche !

Merci bp.
dachboden 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 12h07.


 
 
 
 
Partenaires

Hébergement Web