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 31/12/2010, 11h39   #1
Membre du Club
 
Inscription : novembre 2003
Messages : 142
Détails du profil
Informations forums :
Inscription : novembre 2003
Messages : 142
Points : 58
Points : 58
Par défaut Accès direct sur numéro d'observation

Bonjour
Je souhaite accéder directement à une observation avec l'instruction MODIFY, mais je ne dois pas faire ce qu'il faut car mon programme plante.
Je me suis pourtant inspiré de la doc sas.
Voici le programme :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
DATA TEMP;
   input Ident $ Sexe $ @@;
   cards;
54 M 63 M 73 M 83 M 85 M 90 M 95 M
;
DATA TEMP;
   Numero=3;
   MODIFY TEMP point=Numero;
   Sexe='F';
   stop;
run;
proc print DATA=TEMP; run;
Le sexe n'a pas été changé pour l'observation numéro 3, contrairement à ce que j'escomptais.
Citation:
Obs Ident Sexe
1 54 M
2 63 M
3 73 M
4 83 M
5 85 M
6 90 M
7 95 M
Est-ce que quelqu'un verrait où est l'erreur ?
enicnath est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/12/2010, 14h03   #2
Membre expérimenté
 
Inscription : avril 2009
Messages : 537
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 537
Points : 540
Points : 540
salut,

Numero doit etre dans ta table TEMP

xav
xav2229 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2011, 12h09   #3
Membre éclairé
 
Avatar de Filippo
 
Homme Philippe
Statisticien
Inscription : mai 2004
Messages : 654
Détails du profil
Informations personnelles :
Nom : Homme Philippe
Âge : 38
Localisation : France, Eure (Haute Normandie)

Informations professionnelles :
Activité : Statisticien

Informations forums :
Inscription : mai 2004
Messages : 654
Points : 396
Points : 396
Bonjour,
oui, comme ça tu peux modifier la 3ème observation :

Code :
1
2
3
4
5
6
7
8
9
10
11
DATA TEMP;
   input Ident $ Sexe $ @@;
   cards;
54 M 63 M 73 M 83 M 85 M 90 M 95 M
;
 
DATA temp;
	SET temp;
 	numero=_n_;
	IF numero eq 3 then sexe='F';
run;
__________________
"Le sage ne dit pas ce qu'il sait alors que le sot ne sait pas ce qu'il dit"
Filippo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2011, 17h15   #4
Membre expérimenté
 
Inscription : avril 2009
Messages : 537
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 537
Points : 540
Points : 540
Attention il veut utiliser point
xav2229 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2011, 18h21   #5
Membre du Club
 
Inscription : novembre 2003
Messages : 142
Détails du profil
Informations forums :
Inscription : novembre 2003
Messages : 142
Points : 58
Points : 58
Oui, je veux faire un accès direct.

Je n'est pas écrit la variable Numero initialement, parce que ma table de départ contient un identifiant, mais que je veux accéder à l'observation selon son rang dans la table et non selon la valeur de l'identifiant.

J'ai essayé en incluant une variable Numero mais ça ne marche toujours pas.
enicnath est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2011, 18h24   #6
Membre expérimenté
 
Inscription : avril 2009
Messages : 537
Détails du profil
Informations forums :
Inscription : avril 2009
Messages : 537
Points : 540
Points : 540
cf la doc

Example 3: Modifying Observations Located by Observation Number
xav2229 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2011, 15h02   #7
Expert Confirmé
 
Avatar de olivier.decourt
 
Homme Olivier Decourt
Formateur en informatique
Inscription : avril 2008
Messages : 1 466
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 466
Points : 2 822
Points : 2 822
Salut à tous.
Une solution qui n'est pas exactement de l'accès direct mais qui semble assez rapide : on va jusqu'à l'observation qui va bien, on met à jour et on s'en va.
Code :
1
2
3
4
5
6
7
8
9
 
DATA temp;
	MODIFY temp;
        IF _N_=3 THEN DO ;
            sexe="F" ; 
            REPLACE ;
            STOP ;
        END ;
RUN ;
Olivier
olivier.decourt est actuellement 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 16h03.


 
 
 
 
Partenaires

Hébergement Web