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 :

Ajouter dans une table


Sujet :

SAS Base

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 90
    Par défaut Ajouter dans une table
    J'ai une table de 100 obseravtions et 1 seule variable, je veux ajouter 100 observations d'une valeur de 0 dans cette table.
    append ?

    /--------------------------/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    data toto;
     retain i 0;
     do while(i<100);
     append(toto,0);
     i=i+1;
     end;
     run;
    /--------------------------/
    ce code me donne l'erreur

    869 append(tootoo,0);
    -
    22
    76
    ERROR: Undeclared array referenced: append.
    ERROR 22-322: Syntax error, expecting one of the following: +, =.

    ERROR 76-322: Syntax error, statement will be ignored.
    /-------------------------------------------------------------/

    une idée?

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 73
    Par défaut
    Bonjour

    Normalement, il suffit de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    data table;
      set nomtable; *table avec tes 100 observations;
      nomvar=0;     * nouvelle variable ;
    run;

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 90
    Par défaut
    J'ai essayé le code. résultat, il a remplacé toutes les valeurs par 0 !!

  4. #4
    Expert confirmé
    Avatar de olivier.decourt
    Homme Profil pro
    Formateur R/SAS/statistiques
    Inscrit en
    Avril 2008
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Formateur R/SAS/statistiques
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 064
    Par défaut
    Bonjour.
    Je vois deux solutions simples au problème (si je l'ai bien compris) :
    1) créer une table de 100 observations et une variable qui vaut zéro, et l'empiler ensuite sous la 1e (avec une étape Data ou une proc Append).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    DATA table0 (DROP=i) ;
       DO i=1 TO 100 ;
         maVar = 0 ;
         OUTPUT ;
       END ;
    RUN ;
    DATA tables ;
       SET table0 table1 ; /* table1 existe déjà */
    RUN ;
    /* ou, alternative à la 2e étape Data */
    PROC APPEND BASE=table1 DATA=table0 ;
    RUN ;
    2) en une seule étape, lire la 1e table, et après la dernière observation, ajouter une boucle pour générer les 100 observations supplémentaires. Dans ce cas, il faudra faire très attention à mettre des instructions OUTPUT pour écrire les observations dans les 2 phases d'écriture de la table (la phase sur les données existantes et la phase bouclée d'ajout).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    DATA table (DROP=i) ;
       SET table1 END=fin ;
       OUTPUT ; /* écriture des lignes existantes */
       IF fin THEN DO ;
         DO i=1 TO 100 ;
            maVar = 0 ;
            OUTPUT ; /* écriture des nouvelles lignes */
         END ;
       END ;
    RUN ;
    Olivier

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 90
    Par défaut
    Merci. Ça marche mec avec le deuxième code, le truc c'est que mon code est juste, mais apparemment 'append' ne fonctionne pas dans une boucle, ni proc SQL d'ailleurs... étrange.

  6. #6
    Expert confirmé
    Avatar de olivier.decourt
    Homme Profil pro
    Formateur R/SAS/statistiques
    Inscrit en
    Avril 2008
    Messages
    2 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France

    Informations professionnelles :
    Activité : Formateur R/SAS/statistiques
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 064
    Par défaut
    La fonction APPEND est spécifique au SCL, et ne peut donc s'utiliser que dans ce contexte ; ce qui exclut le code SAS classique (proc SQL, étape Data, et probablement même les %SYSFUNC -- sur ce dernier point, je n'ai pas testé).

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2007
    Messages : 90
    Par défaut
    Merci.

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

Discussions similaires

  1. ajout dans une table access
    Par k_boy dans le forum MFC
    Réponses: 6
    Dernier message: 05/10/2007, 19h00
  2. requête ajout dans une table
    Par crissud dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 04/04/2007, 20h28
  3. Bouton pour confirmer un ajout dans une table sous Access
    Par cestimagik dans le forum Access
    Réponses: 3
    Dernier message: 31/12/2006, 10h32
  4. Ajout dans une table et relation avec d'autres
    Par climz dans le forum Access
    Réponses: 5
    Dernier message: 12/05/2006, 15h32
  5. big ajout dans une table
    Par bachilbouzouk dans le forum ASP
    Réponses: 4
    Dernier message: 19/04/2005, 10h22

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