*************************************************************; * 1) Press Ctrl+A to select the entire program, then press *; * Ctrl+C to copy it. *; * 2) In your SAS session, create a new program. Press *; * Ctrl+V to paste the code. *; * 3) Modify the path in the %LET statement to match the *; * location of your course data. *; * 4) Run the program to generate the files used in the *; * Reading Text Files with the DATA Step lesson. *; *************************************************************; %let path=s:/workshop; ***********************************************; * Alternate Data Locations *; * DO NOT CHANGE THE FOLLOWING CODE UNLESS *; * DIRECTED TO DO SO BY YOUR INSTRUCTOR. *; ***********************************************; *%let path=s:/workshop/pg1m6; *%let path=c:/workshop/pg1m6; *%let path=c:/SAS_Education/pg1m6; *%let path=c:/SAS_Education/lwpg1m6; ***********************************************; * WARNING: DO NOT ALTER CODE BELOW THIS LINE *; * UNLESS DIRECTED TO DO SO BY YOUR INSTURCTOR.*; ***********************************************; data _null_; file "&path/activities/p108a02.sas"; put '*****************************************;'; put '* Reading Text Files with the DATA Step *;'; put '* Activity 1 *;'; put '*****************************************;'; put; put 'data mygrade;'; put ' infile datalines;'; put ' input Name Grade Age Height;'; put ' datalines;'; put 'Alfred 8th 14 69'; put 'Alice 7th'; put '13 56.5'; put 'Barbara 6th 13 65.3'; put ';'; put 'run;'; run; data _null_; file "&path/activities/p108a03.sas"; put '*****************************************;'; put '* Reading Text Files with the DATA Step *;'; put '* Activity 2 *;'; put '*****************************************;'; put; put 'data mygrade;'; put ' infile "&path/data/grade.csv";'; put ' input Name $'; put ' Grade $'; put ' Age'; put ' Height;'; put 'run;'; put; put 'proc contents data=mygrade;'; put 'run;'; run; data _null_; file "&path/activities/p108a04.sas"; put '*****************************************;'; put '* Reading Text Files with the DATA Step *;'; put '* Activity 3 *;'; put '*****************************************;'; put; put 'data mygrade;'; put ' infile "&path/data/grade.csv" dlm="," firstobs=2;'; put ' input Name $ Grade $ Age Height;'; put 'run;'; run; data _null_; file "&path/activities/p108a06.sas"; put '*****************************************;'; put '* Reading Text Files with the DATA Step *;'; put '* Activity 5 *;'; put '*****************************************;'; put; put 'data storm_2018; '; put ' infile "&path/data/storm_2018.txt";'; put ' input ;'; put 'run;'; run; data _null_; file "&path/activities/p108a07.sas"; put '*****************************************;'; put '* Reading Text Files with the DATA Step *;'; put '* Activity 6 *;'; put '*****************************************;'; put; put 'data storm_2019;'; put ' infile "&path/data/storm_2019.dat" firstobs=3;'; put ' input @1 Season'; put ' @9 Basin $2.'; put ' @16 Name $10.;'; put 'run;'; run; data _null_; file "&path/demos/p108d01.sas"; put '*****************************************;'; put '* Reading Text Files with the DATA Step *;'; put '* Demo 1 *;'; put '*****************************************;'; put; put 'data storm_2019;'; put ' infile "&path/data/storm_2019.csv" dlm="," firstobs=2;'; put ' input Season'; put ' Basin :$2.'; put ' Name :$12.'; put ' StartDate :anydtdte.'; put ' EndDate :anydtdte.'; put ' MinPressure'; put ' MaxWind;'; put 'run;'; put; put; put; put; put; put; put; put; put; put; put; put; put; put; put; put; put; put; put; put; put '/*SOLUTION*/'; put 'data storm_2019;'; put ' infile "&path/data/storm_2019.csv" dsd missover firstobs=2;'; put ' input Season'; put ' Basin :$2.'; put ' Name :$12.'; put ' StartDate :anydtdte.'; put ' EndDate :anydtdte.'; put ' MinPressure :comma.'; put ' MaxWind;'; put ' format StartDate EndDate date9.;'; put 'run;'; run; data _null_; file "&path/data/grade.txt"; put 'Alfred 8th 14 69'; put 'Alice 7th'; put '13 56.5'; put 'Barbara 6th 13 65.3'; run; data _null_; file "&path/data/grade.csv"; put 'Name,Grade,Age,Height,Birthdate'; put 'Alfred,8th,14,68,10/26/2004'; put 'Alexandra,7th,13,56,11/16/2005'; put 'Barbara,6th,13,65.3,1/15/2005'; put 'Carol,7th,14,62.8,7/4/2004'; put 'Henry,8th ,14,63.5,12/1/2004'; put 'James,6th,12,57.3,6/15/2006'; put 'Jane,7th,12,59.8,3/13/2006'; put 'Janet,10th,15,62.5,4/2/2003'; put 'Jeffrey,7th,13,62.5,4/26/2005'; put 'John,6th,12,59,8/23/2006'; put 'Joyce,5th,11,51.3,1/3/2007'; put 'Judy,9th,14,64.3,12/5/2004'; put 'Louise,5th,12,56.3,8/8/2006'; put 'Mary,9th,15,66.5,3/26/2003'; put 'Philip,10th,16,72,11/21/2002'; put 'Robert,7th,12,64.8,6/6/2006'; put 'Ronald,9th,15,67,10/14/2003'; put 'Thomas,6th,11,57.5,3/18/2007'; put 'William,10th,15,66.5,12/28/2003'; run; data _null_; file "&path/data/grade.dat"; put 'Name Grade Age Height Birthdate'; put 'Alfred 8th 14 68 10/26/2004'; put 'Alexandra 7th 13 56 11/16/2005'; put 'Barbara 6th 13 65.3 01/15/2005'; put 'Carol 7th 14 62.8 07/04/2004'; put 'Henry 8th 14 63.5 12/01/2004'; put 'James 6th 12 57.3 06/15/2006'; put 'Jane 7th 12 59.8 03/13/2006'; put 'Janet 10th 15 62.5 04/02/2003'; put 'Jeffrey 7th 13 62.5 04/26/2005'; put 'John 6th 12 59 08/23/2006'; put 'Joyce 5th 11 51.3 01/03/2007'; put 'Judy 9th 14 64.3 12/05/2004'; put 'Louise 5th 12 56.3 08/08/2006'; put 'Mary 9th 15 66.5 03/26/2003'; put 'Philip 10th 16 72 11/21/2002'; put 'Robert 7th 12 64.8 06/06/2006'; put 'Ronald 9th 15 67 10/14/2003'; put 'Thomas 6th 11 57.5 03/18/2007'; put 'William 10th 15 66.5 12/28/2003'; run; data _null_; file "&path/data/storm_2018.txt"; put '***********************************************************'; put '* International Storms for 2018 Season *'; put '* Record layout: *'; put '* Season Basin Name StartDate EndDate MinPressure MaxWind *'; put '***********************************************************'; put '2018|SI|Hilda|26DEC17|12/29/2017||'; put '2018|wp|Bolaven|02JAN18|01/03/2018||33.35'; put '2018|SI|Ava|03JAN18|01/09/2018|958|106.95'; put '2018|SI|Irving|06JAN18|01/10/2018|966|102.35'; put '2018|SI|Joyce|09JAN18|01/14/2018|985|62.1'; put '2018|SI|Berguitta|12JAN18|01/20/2018|947|113.85'; put '2018|SI|Cebile|27JAN18|02/08/2018|936|136.85'; put '2018|SP|Fehi|28JAN18|01/30/2018|982|58.65'; put '2018|SP|Gita|09FEB18|02/19/2018|929|142.6'; put '2018|wp|Sanba|09FEB18|02/16/2018|992|62.1'; put '2018|SI|Kelvin|16FEB18|02/18/2018|970|92'; put '2018|SI|Dumazile|02MAR18|03/07/2018|945|120.75'; put '2018|SP|Hola|06MAR18|03/11/2018|956|106.95'; put '2018|SP|Linda|12MAR18|03/15/2018|990|58.65'; put '2018|SI|Eliakim|15MAR18|03/21/2018|987|62.1'; put '2018|SI|Marcus|15MAR18|03/24/2018|916|158.7'; put '2018|SP|Nora|22MAR18|03/25/2018|960|106.95'; put '2018|SP|Iris|25MAR18|04/10/2018|987|62.1'; put '2018|WP|Jelawat|25MAR18|03/31/2018|926|147.2'; put '2018|SP|Josie|31MAR18|04/03/2018|993|51.75'; put '2018|SP|Keni|08APR18|04/11/2018|963|96.6'; put '2018|SI|Fakir|23APR18|04/25/2018|990|73.6'; put '2018|SI|Flamboyan|28APR18|05/02/2018|982|80.5'; put '2018|EP||10MAY18|09/20/2018|1002|34.5'; put '2018|WP||12MAY18|12/30/2018|987|40.25'; put '2018|NI|Sagar|16MAY18|05/19/2018|992|62.1'; put '2018|NI|Mekunu|22MAY18|05/26/2018|952|113.85'; put '2018|NA|Alberto|25MAY18|05/31/2018|990|63.25'; put '2018|WP|Ewiniar|02JUN18|06/08/2018|994|40.25'; put '2018|EP|Aletta|06JUN18|06/11/2018|943|138'; put '2018|WP|Maliksi|08JUN18|06/11/2018|971|69'; put '2018|EP|Bud|09JUN18|06/15/2018|948|132.25'; put '2018|EP|Carlotta|14JUN18|06/19/2018|997|63.25'; put '2018|WP|Gaemi|14JUN18|06/17/2018|989|51.75'; put '2018|EP|Daniel|24JUN18|06/26/2018|1003|46'; put '2018|EP|Emilia|27JUN18|07/02/2018|997|57.5'; put '2018|WP|Prapiroon|28JUN18|07/04/2018|963|85.1'; put '2018|EP|Fabio|30JUN18|07/06/2018|964|109.25'; put '2018|WP|Maria|02JUL18|07/11/2018||158.7'; put '2018|NA|Beryl|05JUL18|07/16/2018|994|80.5'; put '2018|NA|Chris|06JUL18|07/12/2018|970|103.5'; put '2018|WP|Son-Tinh|15JUL18|07/22/2018|992|51.75'; put '2018|WP|Ampil|17JUL18|07/23/2018|983|58.65'; put '2018|WP|Wukong|21JUL18|07/26/2018|974|73.6'; put '2018|WP|Jongdari|22JUL18|08/02/2018|948|106.95'; put '2018|EP|Gilma|26JUL18|07/30/2018|1006|40.25'; put '2018|EP|Hector|31JUL18|08/13/2018|936|155.25'; put '2018|WP|Shanshan|02AUG18|08/10/2018|949|102.35'; put '2018|EP|Ileana|04AUG18|08/07/2018|998|63.25'; put '2018|EP|John|05AUG18|08/10/2018|967|109.25'; put '2018|WP|Yagi|06AUG18|08/12/2018|983|51.75'; put '2018|EP|Kristy|07AUG18|08/11/2018|991|69'; put '2018|NA|Debby|07AUG18|08/09/2018|1000|51.75'; put '2018|WP|Leepi|11AUG18|08/15/2018|982|73.6'; put '2018|WP|Bebinca|12AUG18|08/17/2018|982|62.1'; put '2018|WP|Hector|13AUG18|08/15/2018|1004|48.3'; put '2018|EP|Lane|15AUG18|08/29/2018|926|161'; put '2018|NA|Ernesto|15AUG18|08/18/2018|999|46'; put '2018|WP|Rumbia|15AUG18|08/17/2018|978|58.65'; put '2018|WP|Soulik|15AUG18|08/25/2018|941|120.75'; put '2018|WP|Cimaron|17AUG18|08/24/2018|940|125.35'; put '2018|EP|Miriam|26AUG18|09/03/2018|974|97.75'; put '2018|WP|Jebi|27AUG18|09/04/2018|910|170.2'; put '2018|EP|Norman|28AUG18|09/08/2018|937|149.5'; put '2018|NA|Florence|30AUG18|09/18/2018|941|138'; put '2018|EP|Olivia|01SEP18|09/18/2018|951|132.25'; put '2018|NA|Gordon|02SEP18|09/08/2018|999|69'; put '2018|NA|Helene|07SEP18|09/16/2018|966|109.25'; put '2018|WP|Mangkhut|07SEP18|09/16/2018|898|177.1'; put '2018|EP|Paul|08SEP18|09/12/2018|1002|46'; put '2018|NA|Isaac|08SEP18|09/17/2018|993|74.75'; put '2018|WP|Barijat|10SEP18|09/13/2018|1000|44.85'; put '2018|NA|Joyce|12SEP18|09/19/2018|997|51.75'; put '2018|WP|Trami|20SEP18|09/30/2018|914|158.7'; put '2018|NA|Kirk|22SEP18|09/29/2018|998|57.5'; put '2018|NA||22SEP18|09/23/2018|1007|34.5'; put '2018|NA|Leslie|23SEP18|10/14/2018|969|92'; put '2018|EP|Rosa|25SEP18|10/02/2018|940|143.75'; put '2018|WP|Kong-Rey|28SEP18|10/06/2018|916|158.7'; put '2018|EP|Sergio|29SEP18|10/12/2018|943|138'; put '2018|EP|Walaka|29SEP18|10/06/2018|920|161'; put '2018|NA|Michael|07OCT18|10/12/2018|919|155.25'; put '2018|NI|Luban|08OCT18|10/14/2018|975|85.1'; put '2018|NA|Nadine|09OCT18|10/13/2018|997|63.25'; put '2018|NI|Titli|09OCT18|10/11/2018|956|102.35'; put '2018|EP|Tara|14OCT18|10/17/2018|995|63.25'; put '2018|EP|Vicente|19OCT18|10/23/2018|1002|51.75'; put '2018|EP|Willa|20OCT18|10/24/2018|925|161'; put '2018|WP|Yutu|21OCT18|11/02/2018|899|177.1'; put '2018|NA|Oscar|27OCT18|10/31/2018|970|103.5'; put '2018|EP|Xavier|02NOV18|11/08/2018|997|63.25'; put '2018|NI|Gaja|10NOV18|11/18/2018|983|85.1'; put '2018|WP|Toraji|17NOV18|11/20/2018||33.35'; put '2018|WP|Usagi|18NOV18|11/25/2018|970|80.5'; put '2018|WP|Man-Yi|19NOV18|11/27/2018|956|102.35'; put '2018|NI|Phethai|15DEC18|12/17/2018|989|62.1'; put '2018|WP|Pabuk|31DEC18|01/04/2019|985|58.65'; put '2018|NI|Pabuk|04JAN19|01/07/2019|985|58.65'; run; data _null_; file "&path/data/storm_2019.csv"; put 'Season,Basin,Name,StartDate,EndDate,MinPressure,MaxWind'; put '2019,SI,999,15SEP18,17SEP18,unknown,51.75'; put '2019,SI,ALCIDE,06NOV18,13NOV18,,113.85'; put '2019,WP,,04JAN19,19MAR19,"1,002",28.75'; put '2019,SP,LIUA,26SEP18,29SEP18,990'; put '2019,SI,BOUCHRA,10NOV18,19NOV18,982,62.1'; put '2019,SP,OWEN,02DEC18,15DEC18,969,92'; put '2019,SI,KENANGA,15DEC18,23DEC18,938,132.25'; put '2019,SI,CILIDA,19DEC18,25DEC18,925,154.1'; put '2019,SP,PENNY,31DEC18,07JAN19,985,62.1'; put '2019,SP,MONA,02JAN19,07JAN19,989,58.65'; put '2019,SI,DESMOND,20JAN19,22JAN19,993,51.75'; put '2019,SI,RILEY,23JAN19,29JAN19,,80.5'; put '2019,SI,FUNANI,05FEB19,10FEB19,937,132.25'; put '2019,SI,GELENA,06FEB19,15FEB19,933,136.85'; put '2019,SP,NEIL,09FEB19,10FEB19,994,40.25'; put '2019,SP,OMA,12FEB19,25FEB19,965,85.1'; put '2019,WP,WUTIP,19FEB19,01MAR19,918,158.7'; put '2019,SP,POLA,26FEB19,01MAR19,956,106.95'; put '2019,SI,HALEH,02MAR19,09MAR19,937,132.25'; put '2019,SI,IDAI,09MAR19,14MAR19,944,120.75'; put '2019,SI,SAVANNAH,14MAR19,21MAR19,948,113.85'; put '2019,SP,TREVOR,17MAR19,23MAR19,952,120.75'; put '2019,SI,VERONICA,19MAR19,26MAR19,930,142.6'; put '2019,SI,JOANINHA,22MAR19,31MAR19,937,132.25'; run; data _null_; file "&path/data/storm_2019.dat"; put 'Season Basin Name Start End Min Max'; put ' Date Date Pressure Wind'; put '2019 SI 15SEP18 17SEP18 1,002 51.75'; put '2019 SP LIUA 26SEP18 29SEP18 990 44.85'; put '2019 SI ALCIDE 06NOV18 13NOV18 . 113.85'; put '2019 SI BOUCHRA 10NOV18 19NOV18 982 62.10'; put '2019 SP OWEN 02DEC18 15DEC18 969 92.00'; put '2019 SI KENANGA 15DEC18 23DEC18 938 132.25'; put '2019 SI CILIDA 19DEC18 25DEC18 925 154.10'; put '2019 SP PENNY 31DEC18 07JAN19 985 62.10'; put '2019 SP MONA 02JAN19 07JAN19 989 58.65'; put '2019 WP 04JAN19 19MAR19 1,001 28.75'; put '2019 SI DESMOND 20JAN19 22JAN19 993 51.75'; put '2019 SI RILEY 23JAN19 29JAN19 . 80.50'; put '2019 SI FUNANI 05FEB19 10FEB19 937 132.25'; put '2019 SI GELENA 06FEB19 15FEB19 933 136.85'; put '2019 SP NEIL 09FEB19 10FEB19 994 40.25'; put '2019 SP OMA 12FEB19 25FEB19 965 85.10'; put '2019 WP WUTIP 19FEB19 01MAR19 918 158.70'; put '2019 SP POLA 26FEB19 01MAR19 956 106.95'; put '2019 SI HALEH 02MAR19 09MAR19 937 132.25'; put '2019 SI IDAI 09MAR19 14MAR19 944 120.75'; put '2019 SI SAVANNAH 14MAR19 21MAR19 948 113.85'; put '2019 SP TREVOR 17MAR19 23MAR19 952 120.75'; put '2019 SI VERONICA 19MAR19 26MAR19 930 142.60'; put '2019 SI JOANINHA 22MAR19 31MAR19 937 132.25'; run;