Hi everyone,
I have a txt like that :
Acheteur principal Alerte à traiter Bonne cotation groupe Cotation Groupe Date début alerte Date de calcul de l’alerte Encours acheteur Encours affacturage absolu significatif
101997 04/12/2020 9169,95 0
103156 0 1 C- 16/11/2020 04/12/2020 814,39 0
103650 0 0 E- 02/11/2020 04/12/2020 25619 1
103685 0 0 E+ 28/09/2020 04/12/2020 1411,24 0
108902 0 1 C+ 19/10/2020 04/12/2020 795,6 0
115079 0 0 E- 28/09/2020 04/12/2020 1760,28 0
117008 0 0 E- 28/09/2020 04/12/2020 3944,74 0
118580 0 1 C+ 28/09/2020 04/12/2020 167,64 0
121216 04/12/2020 17781,98 0
128649 04/12/2020 1841,13 0
136913 0 1 C- 23/11/2020 04/12/2020 774,97 0
138842 04/12/2020 4230,69 0
158975 0 0 E- 28/09/2020 04/12/2020 1518,87 0
159013 0 0 E- 28/09/2020 04/12/2020 12984,9 0
I would like to know how can I open it in my SAS code ? Especially around the infile part ?
DATA BO_RECETTE; LENGTH 'Acheteur principal'n 8 'Alerte à traiter'n 8 'Bonne cotation groupe'n 8 'Cotation Groupe'n $ 2 'Date début alerte'n 8 'Date de calcul de l’alerte'n 8 'Encours acheteur'n 8 'Encours affacturage absolu signi'n 8; FORMAT 'Acheteur principal'n BEST12. 'Alerte à traiter'n BEST12. 'Bonne cotation groupe'n BEST12. 'Cotation Groupe'n $CHAR2. 'Date début alerte'n DATE9. 'Date de calcul de l’alerte'n DATE9. 'Encours acheteur'n BEST12. 'Encours affacturage absolu signi'n BEST12.; INFORMAT 'Acheteur principal'n BEST12. 'Alerte à traiter'n BEST12. 'Bonne cotation groupe'n BEST12. 'Cotation Groupe'n $CHAR2. 'Date début alerte'n DATE9. 'Date de calcul de l’alerte'n DATE9. 'Encours acheteur'n BEST12. 'Encours affacturage absolu signi'n BEST12.; INFILE 'C:\Users\...\BO_recette.txt' /* I don't know what I should put */ INPUT 'Acheteur principal'n : BEST32. 'Alerte à traiter'n : BEST32. 'Bonne cotation groupe'n : BEST32. 'Cotation Groupe'n : $CHAR2. 'Date début alerte'n : BEST32. 'Date de calcul de l’alerte'n : BEST32. 'Encours acheteur'n : BEST32. 'Encours affacturage absolu signi'n : BEST32.; RUN
thanks for your help
Code example:
data bo_recette;
infile '/folders/myfolders/unifly.txt' dlm='09'x dsd truncover;
length
Acheteur_principal 8
Alerte_a_traiter 8
Bonne_cotation_groupe 8
Cotation_Groupe $ 2
Date_debut_alerte 8
Date_de_calcul_de_l_alerte 8
Encours_acheteur 8
Encours_affacturage_absolu_signi 8
;
label
Acheteur_principal='Acheteur principal'
Alerte_a_traiter='Alerte à traiter'
Bonne_cotation_groupe='Bonne cotation groupe'
Cotation_Groupe='Cotation Groupe'
Date_debut_alerte='Date début alerte'
Date_de_calcul_de_l_alerte='Date de calcul de l’alerte'
Encours_acheteur='Encours acheteur'
Encours_affacturage_absolu_signi='Encours affacturage absolu signi'
;
format
Date_debut_alerte
Date_de_calcul_de_l_alerte yymmdd10.
;
input
Acheteur_principal
Alerte_a_traiter
Bonne_cotation_groupe
Cotation_Groupe
Date_debut_alerte :ddmmyy10.
Date_de_calcul_de_l_alerte :ddmmyy10.
Encours_acheteur :commax10.
Encours_affacturage_absolu_signi
;
run;
The file is tab-separated, so this should do it:
infile 'C:\Users\...\BO_recette.txt' dlm='09'x dsd truncover;
DSD is necessary to recognize two successive tabs as a missing value.
And I strongly recommend to not use name literals; use valid SAS names, and use the pretty strings in labels only.
Code example:
data bo_recette;
infile '/folders/myfolders/unifly.txt' dlm='09'x dsd truncover;
length
Acheteur_principal 8
Alerte_a_traiter 8
Bonne_cotation_groupe 8
Cotation_Groupe $ 2
Date_debut_alerte 8
Date_de_calcul_de_l_alerte 8
Encours_acheteur 8
Encours_affacturage_absolu_signi 8
;
label
Acheteur_principal='Acheteur principal'
Alerte_a_traiter='Alerte à traiter'
Bonne_cotation_groupe='Bonne cotation groupe'
Cotation_Groupe='Cotation Groupe'
Date_debut_alerte='Date début alerte'
Date_de_calcul_de_l_alerte='Date de calcul de l’alerte'
Encours_acheteur='Encours acheteur'
Encours_affacturage_absolu_signi='Encours affacturage absolu signi'
;
format
Date_debut_alerte
Date_de_calcul_de_l_alerte yymmdd10.
;
input
Acheteur_principal
Alerte_a_traiter
Bonne_cotation_groupe
Cotation_Groupe
Date_debut_alerte :ddmmyy10.
Date_de_calcul_de_l_alerte :ddmmyy10.
Encours_acheteur :commax10.
Encours_affacturage_absolu_signi
;
run;
thank you !
Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.