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 11/04/2011, 15h24   #1
Invité de passage
 
Inscription : décembre 2009
Messages : 117
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 117
Points : 4
Points : 4
Par défaut Suppression de lignes

Bonjour,

j'ai réussi à importer un fichier TXT sous SAS .OK

j'ai réussi à supprumer les colonnes dont je n'est pas besoin.OK

le sousis est que c'est un gros fichier(chaque personne à une ligne)
le fichier commence par un code région(il ya toutes les régions de france) et moi je veux juste garder les lignes correspondant au PUY de dome( donc 63000 jusqu'à 63472)

Merci pour votre aide
debutsas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2011, 15h50   #2
Modérateur
 
Homme Samir SELMANE
Consultant en Business Intelligence
Inscription : février 2011
Messages : 1 006
Détails du profil
Informations personnelles :
Nom : Homme Samir SELMANE
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : février 2011
Messages : 1 006
Points : 1 703
Points : 1 703
Bonjour,
si tu veux garder les lignes entre 63000 et 63472, t'ajoutes dans ton étape data :
if 63000 <= _n_ =< 63472
Exemple:
Code :
1
2
3
4
5
6
 
 
DATA tab;
SET sashelp.class;
IF 5 <= _n_ =< 10;
run;
s_a_m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2011, 15h55   #3
Modérateur
 
Homme Samir SELMANE
Consultant en Business Intelligence
Inscription : février 2011
Messages : 1 006
Détails du profil
Informations personnelles :
Nom : Homme Samir SELMANE
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : février 2011
Messages : 1 006
Points : 1 703
Points : 1 703
j'ajoute;

_n_ est une variable temporaire que SAS crée lors de la lecture de données et correspond au numéro de la ligne lue.
s_a_m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2011, 17h35   #4
Membre Expert
 
Inscription : mars 2005
Messages : 1 010
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 1 010
Points : 1 258
Points : 1 258
Envoyer un message via Yahoo à bahraoui
ta solution dépend du nombre de lignes de ton fichier
pourquoi tu n'ajoutes pas le filtre region='PUY de dome' par exemple!!
__________________
Consultez les FAQs et les anciens postes avant de poser vos questions. Merci
bahraoui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2011, 17h51   #5
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
Ben ouè!!, ya pas de piège Sam
MEGAMIND2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2011, 18h04   #6
Modérateur
 
Homme Samir SELMANE
Consultant en Business Intelligence
Inscription : février 2011
Messages : 1 006
Détails du profil
Informations personnelles :
Nom : Homme Samir SELMANE
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : février 2011
Messages : 1 006
Points : 1 703
Points : 1 703
Citation:
Envoyé par MEGAMIND2 Voir le message
Ben ouè!!, ya pas de piège Sam
La citation de Baharaoui n'est valable si et que si la variable 'PUY de dome', existe.
la solution que j'ai proposé repose sur le fait que debutsas connait la fourchette de données qu'il veut garder.
d'où ma question.
Code :
1
2
 
si tu veux garder les lignes entre 63000 et 63472.
.
s_a_m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2011, 18h11   #7
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
C'est juste une diversion Sam
Ne rentres pas trop tard, bonne soirée!
MEGAMIND2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/04/2011, 19h01   #8
Modérateur
 
Homme Samir SELMANE
Consultant en Business Intelligence
Inscription : février 2011
Messages : 1 006
Détails du profil
Informations personnelles :
Nom : Homme Samir SELMANE
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : février 2011
Messages : 1 006
Points : 1 703
Points : 1 703
Citation:
Envoyé par MEGAMIND2 Voir le message
C'est juste une diversion Sam
Ne rentres pas trop tard, bonne soirée!
Sorry,

c'était juste une explication.
s_a_m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2011, 13h41   #9
Invité de passage
 
Inscription : décembre 2009
Messages : 117
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 117
Points : 4
Points : 4
bonjour,
j'ai essayé avec 63472>= _n_=> 63000
mais ça ne me garde pas les bons chiffres, pas ceux entre 63000 et 63472!!
vous n'avez pas une autre solution?
debutsas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2011, 13h45   #10
Modérateur
 
Homme Samir SELMANE
Consultant en Business Intelligence
Inscription : février 2011
Messages : 1 006
Détails du profil
Informations personnelles :
Nom : Homme Samir SELMANE
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : février 2011
Messages : 1 006
Points : 1 703
Points : 1 703
tu cherches à récupérer les lignes comprises entre 63000 et 63472, ou les valeurs de la colonnes entre 63000 et 63472.

tu peux poster ton code ?
s_a_m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2011, 13h50   #11
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
+1 Bahraoui. Le plus sur semble de filtrer sur la catégorie de ta variable.

Code :
1
2
3
DATA sortie;
SET entree(WHERE=(variable IN ("PUY de dome")));
run;
Enfin, d'une manière générale, il faut trouver un moyen pour filtrer sur 'PUY de dome'. Si ces infos ne sont pas dispos en entrée, il faut passer par autre chose... qui sera surement plus risqué..
Manoutz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2011, 13h53   #12
Invité de passage
 
Inscription : décembre 2009
Messages : 117
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 117
Points : 4
Points : 4
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
DATA fluxmigres;
INFILE 'C:\Users\Fouzy CHBOUKI\Desktop\OBS\FD_MIGCOM_2007.txt' dlm=';';
input COMMUNE  ARM  DCRAN  ACHLR  AGEMEN8  AGEREVQ  ANEMEC  CS1  CSM  DIPL  DNAI  INAI  INATC  IPONDI  IRAN  IRANUU  LPRM  METRODOM  MOCO  NA5  NPERR  SEXE  STOCD  TACT  TACTM  TYPL  TYPMR ;
 
run;
 
DATA fluxmig;
SET fluxmig;
DROP ARM ACHLR AGEREVQ ANEMEC CSM DIPL DNAI INAI IPONDI LPRM METRODOM MOCO NA5 NPERR SEXE TYPMR;
run;
 
DATA fluxmig;
SET fluxmig;
IF 63472<= _n_ =>63000;
run;
le voilà le petit bout de code, par ce que pour l'instant je veux juste garder les données dont j'ai besoin
debutsas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2011, 13h57   #13
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
C'est mieux si tu postais aussi le fichier...
MEGAMIND2 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2011, 14h00   #14
Modérateur
 
Homme Samir SELMANE
Consultant en Business Intelligence
Inscription : février 2011
Messages : 1 006
Détails du profil
Informations personnelles :
Nom : Homme Samir SELMANE
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : février 2011
Messages : 1 006
Points : 1 703
Points : 1 703
un keep peut être au lieu de drop?
s_a_m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2011, 14h12   #15
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
simple vérification,
essaye et dis nous si ya qqc de différent:

Code :
1
2
3
4
DATA fluxmig;
 SET fluxmig;
IF _n_  ge 63000 AND  _n_ le 63472;
run;
Manoutz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2011, 14h20   #16
Modérateur
 
Homme Samir SELMANE
Consultant en Business Intelligence
Inscription : février 2011
Messages : 1 006
Détails du profil
Informations personnelles :
Nom : Homme Samir SELMANE
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : février 2011
Messages : 1 006
Points : 1 703
Points : 1 703
Sorry,
j'ai supprimé mon précédent message accidentellement.
donc pas besoin de passer par 3 étapes DATA.
Code :
1
2
3
4
5
6
7
8
 
 
 
DATA fluxmigres (keep=COMMUNE  ARM DCRAN AGEMEN8 CS1 INATC IRAN IRANUU STOCD TACT TACTM TYPL );
INFILE 'C:\Users\Fouzy CHBOUKI\Desktop\OBS\FD_MIGCOM_2007.txt' dlm=';';
input COMMUNE  ARM  DCRAN  ACHLR  AGEMEN8  AGEREVQ  ANEMEC  CS1  CSM  DIPL  DNAI  INAI  INATC  IPONDI  IRAN  IRANUU  LPRM  METRODOM  MOCO  NA5  NPERR  SEXE  STOCD  TACT  TACTM  TYPL  TYPMR ;
 
run;

Maintenant, dis nous si t’as une variable dans ta table créée qui correspond à PUY de dome .

Et à quoi correspond les deux valeurs 63000 et 63472 , aux numéros de ligne dans ton fichier texte ? à des valeurs de l’une de tes variable ?

Dans le premier cas tu peux être utiliser un firstobs= 63000 et obs= 472 ;
s_a_m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2011, 14h23   #17
Invité de passage
 
Inscription : décembre 2009
Messages : 117
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 117
Points : 4
Points : 4
c'est un fichier lourd!! j'arrive pas à le charger!! même la version.zip.
mais en gros il ressemble à ça:
je mets les deux colonnes qui m'interessent le plus:
commune commune il ya 5 ans
010001 010001
001001 01001
debutsas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2011, 14h25   #18
Invité de passage
 
Inscription : décembre 2009
Messages : 117
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 117
Points : 4
Points : 4
non je n'ai aps de variable qui corresponde au PUYDE DOME.
chaque ligne d emon fichier correspond à une personne.
debutsas est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2011, 14h27   #19
Modérateur
 
Homme Samir SELMANE
Consultant en Business Intelligence
Inscription : février 2011
Messages : 1 006
Détails du profil
Informations personnelles :
Nom : Homme Samir SELMANE
Localisation : France

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : février 2011
Messages : 1 006
Points : 1 703
Points : 1 703

Personnellement j'ai besoin de plus d'éléments pour que j'essaie de t'aider.
Sorry.
s_a_m est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/04/2011, 14h31   #20
Invité de passage
 
Inscription : décembre 2009
Messages : 117
Détails du profil
Informations forums :
Inscription : décembre 2009
Messages : 117
Points : 4
Points : 4
63000 et 63472 ne corresspondet pas à mes numéros de ligne.

moi je evux récupérer les personnes qui ont un numéro de commune compris entre 63000 et 63472.
voilà je pense avoir mieux expliquer comme ça.

Merci pour votre aide
debutsas 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 00h50.


 
 
 
 
Partenaires

Hébergement Web