IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SAS Base Discussion :

Calcul avec Array


Sujet :

SAS Base

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 253
    Points : 90
    Points
    90
    Par défaut Calcul avec Array
    Bonjour,

    Je dispose d'un datasets qui contient 10 colonnes indicées Champ1, Champ2,..., Champ10
    je souhaite créé 9 autres colonnes Condi1,...,Condi9 de sorte que:

    Condi1 = Champ1 !! " and " !! Champ2
    Condi2 = Champ1 !! " and " !! Champ2 !! " and " !! Champ3
    ...

    Condi9 = Champ1 !! " and " ... !! " and " !! Champ10


    J'ai esayé le code ci-dessous,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    data Mabase ;
     set  Mabase ; 
     array Condi(9) $200. ;
     array  Cham(10) Champ1-Champ(10) ;
     
      do i=1 to dim(Cham)-1 ;   
         Condi(i) = Cham(1) do k=2 to (i+1); !! " and " !!  Cham(k) end; ;
      end;
     
    run;

    J'ai l'erreur suivante:

    Expecting a ;. au niveau du do k=2 .

    Merci par avance de votre aide.

    Kedmard

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur en SAS/ Statisticien
    Inscrit en
    Janvier 2013
    Messages
    483
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur en SAS/ Statisticien
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2013
    Messages : 483
    Points : 1 552
    Points
    1 552
    Par défaut
    Bonjour,
    Si j'ai bien compris je te propose de réessayer ton code initiale rectifié de la façon suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    data Mabase ;
     set  Mabase ; 
     array Condi(9) $200. ;
     array  Cham(10) Champ1-Champ(10) ; 
     
             if i=1 then Condi(i)= Cham(i)!!" and "!!Cham(i+1)  ; 
    	 else 	     Condi(i)= Condi(i-1)!!" and "!!Cham(i+1)  ;
     
    run;
    Cordialement Ward

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 253
    Points : 90
    Points
    90
    Par défaut
    Bonjour Hossward,

    Merci pour ton retour, j'ai essayé ta solution, mais elle ne marche pas malheureusement, merci quand même
    d'avoir pris le temps.
    Après plusieurs jours de réflexion, j'ai fini par y arriver avec le code ci-dessous:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
     
    %macro toto ;
    %let Nbvar = 10 ;
     
    data Mabase;
    set Mabase ;
     array Condi(%eval(&Nbvar. - 1)) $200. ;
     array  Cham(%eval(&Nbvar.))  Champ1-Champ%eval(&Nbvar.) ;
     
    %do i=1 %to %eval(&Nbvar. - 1) ;
        Condi(&i.) = compress(Cham(1),"") %do k=2 %to %eval(&i. + 1) ; !! " and "!!compress(Cham(&k.),"") %end;
        ;
    %end;
    run;
     
    %mend toto;
    %toto;

    Kedmard,

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. création de tableaux avec Array() et élément 'fantome'
    Par Talieth dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 22/11/2005, 09h49
  2. Temps de calcul avec deux écrans
    Par Shaga dans le forum OpenGL
    Réponses: 2
    Dernier message: 14/11/2005, 09h24
  3. Faire du calcul avec la valeur d'un élément/attribut
    Par camboui dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 03/11/2005, 16h10
  4. Réponses: 2
    Dernier message: 22/03/2004, 10h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo