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

Python Discussion :

Code SAS vers PYTHON -> Fonction First Last Retain


Sujet :

Python

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Code SAS vers PYTHON -> Fonction First Last Retain
    Bonjour,



    Je retranscrit un code sas vers python . Je souhaiterais savoir si vous connaissez la fonction ou le code pour effectuer un first by ou last by en python

    en sas cela se fait de cette manière --> https://thesasreference.wordpress.co...06/first_last/

    Connaissez vous également la fonction pour effectuer un retain ?

    Voici un exemple:




    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
     data cpt(keep = cinf_no 
    top2 ouv2 ancien2 ancimp2 arch2 ade2 top15 ouv15 ancien15 ancimp15 arch15 ade15
    top26 ouv26 ancien26 ancimp26 arch26 ade26 top30 ouv30 ancien30 ancimp30 arch30 ade30
    top50 ouv50 ancien50 ancimp50 arch50 ade50 top120 ouv120 ancien130 ancimp120 arch120 ade120
    top130 ouv130 ancien130 ancimp130 arch130 ade130 top428 ouv428 ancien428 ancimp428 arch428 ade428
    top448 ouv448 ancien448 ancimp448 arch448 ade448 top10 ouv10 ancien10 ancimp10 arch10 ade10
    top14 ouv14 ancien14 ancimp14 arch14 ade14 top4 ouv4 ancien4 ancimp4 arch4 ade4
    top6 ouv6 ancien6 ancimp6 arch6 ade6 top9 ouv9 ancien9 ancimp9 arch9 ade9
    ancieng ancimpg nbouvg nbcomptes nbarchg
    );
        set comptes;
        by cinf_no;
        length
                top2 3. datouv2 8. ouv2 3. arch2 3. datimp2 8. ade2 3.
                top15 3. datouv15 8. ouv15 3. arch15 3. datimp15 8. ade15 3.
                top26 3. datouv26 8. ouv26 3. arch26 3. datimp26 8. ade26 3.
                top30 3. datouv30 8. ouv30 3. arch30 3. datimp30 8. ade30 3.
                top50 3. datouv50 8. ouv50 3. arch50 3. datimp50 8. ade50 3.
                top120 3. datouv120 8. ouv120 3. arch120 3. datimp120 8. ade120 3.
                top130 3. datouv130 8. ouv130 3. arch130 3. datimp130 8. ade130 3.
                top428 3. datouv428 8. ouv428 3. arch428 3. datimp428 8. ade428 3.
                top448 3. datouv448 8. ouv448 3. arch448 3. datimp448 8. ade448 3.
                top10 3. datouv10 8. ouv10 3. arch10 3. datimp10 8. ade10 3.
                top14 3. datouv14 8. ouv14 3. arch14 3. datimp14 8. ade14 3.
                top4 3. datouv4 8. ouv4 3. arch4 3. datimp4 8. ade4 3.
                top6 3. datouv6 8. ouv6 3. arch6 3. datimp6 8. ade6 3.
                top9 3. datouv9 8. ouv9 3. arch9 3. datimp9 8. ade9 3.
            	datouvg 8. datimpg 8.;
     
    	retain 
                top2 datouv2 ouv2 arch2 datimp2 ade2
                top15 datouv15 ouv15 arch15 datimp15 ade15 
                top26 datouv26 ouv26 arch26 datimp26 ade26
                top30 datouv30 ouv30 arch30 datimp30 ade30
                top50 datouv50 ouv50 arch50 datimp50 ade50
                top120 datouv120 ouv120 arch120 datimp120 ade120
                top130 datouv130 ouv130 arch130 datimp130 ade130
                top428 datouv428 ouv428 arch428 datimp428 ade428
                top448 datouv448 ouv448 arch448 datimp448 ade448
                top10 datouv10 ouv10 arch10 datimp10 ade10
                top14 datouv14 ouv14 arch14 datimp14 ade14
                top4 datouv4 ouv4 arch4 datimp4 ade4
                top6 datouv6 ouv6 arch6 datimp6 ade6 
                top9 datouv9 ouv9 arch9 datimp9 ade9
            	datouvg datimpg 0;
     
        if first.cinf_no then do;
    			top2=0; datouv2="01jan2020"D; ouv2=0; arch2=0; datimp2=.; ade2=0;
                top15=0; datouv15="01jan2020"D; ouv15=0; arch15=0; datimp15=.; ade15=0; 
                top26=0; datouv26="01jan2020"D; ouv26=0; arch26=0; datimp26=.; ade26=0;
                top30=0; datouv30="01jan2020"D; ouv30=0; arch30=0; datimp30=.; ade30=0;
                top50=0; datouv50="01jan2020"D; ouv50=0; arch50=0; datimp50=.; ade50=0;
                top120=0; datouv120="01jan2020"D; ouv120=0; arch120=0; datimp120=.; ade120=0;
                top130=0; datouv130="01jan2020"D; ouv130=0; arch130=0; datimp130=.; ade130=0;
                top428=0; datouv428="01jan2020"D; ouv428=0; arch428=0; datimp428=.; ade428=0;
                top448=0; datouv448="01jan2020"D; ouv448=0; arch448=0; datimp448=.; ade448=0;
                top10=0; datouv10="01jan2020"D; ouv10=0; arch10=0; datimp10=.; ade10=0;
                top14=0; datouv14="01jan2020"D; ouv14=0; arch14=0; datimp14=.; ade14=0;
                top4=0; datouv4="01jan2020"D; ouv4=0; arch4=0; datimp4=.; ade4=0;
                top6=0; datouv6="01jan2020"D; ouv6=0; arch6=0; datimp6=.; ade6=0; 
                top9=0; datouv9="01jan2020"D; ouv9=0; arch9=0; datimp9=.; ade9=0;
            	datouvg="01jan2020"D;
            	datimpg=.;
        end;
    run;

    Merci d'avance pour votre aide

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Avec Python, le premier élément d'une séquence se désigne avec machin[0] et le dernier avec machin[-1]. Après la question est de savoir d'où sort "machin" car SAS est un package pour faire des stats et des calculs sur des "tableaux" multidimensionnels: fonctionnalités que Python (le langage) n'a pas dans ses fonctionnalités de base.
    Peut être faut-il lui ajouter pandas?

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    Merci pour ta contribution , en effet j'utilise déja panda et Numpy mais je sais pas reproduire en language Sas la méthode .

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Citation Envoyé par fred0715 Voir le message
    mais je sais pas reproduire en language Sas la méthode.
    Ici, on ne regarde que ce que vous essayez d'écrire en Python.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. First/last obs en SAS
    Par tassia dans le forum Débutez
    Réponses: 2
    Dernier message: 03/12/2012, 16h41
  2. [SQL] Traduction de Code SQL vers SAS
    Par Dr Byby'San dans le forum SAS Base
    Réponses: 4
    Dernier message: 04/06/2012, 09h05
  3. Réponses: 6
    Dernier message: 27/10/2010, 17h57
  4. Transformer structure (argument de fonction) de C++ vers Python avec swig
    Par developers dans le forum Interfaçage autre langage
    Réponses: 0
    Dernier message: 20/07/2010, 11h44
  5. Fonctions First et Last
    Par pepemi dans le forum Access
    Réponses: 5
    Dernier message: 21/03/2006, 17h13

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