You can read a file like that with a simple data step.
You can add the DSD option to the INFILE statement (note that even if you paste the data into the program you will need to code an INFILE statement to add the DSD option).
You could read it in its current "wide" format.
missing m;
data want;
infile datalines dsd truncover firstobs=2;
length id $11 station $40 county $20 elevation latitude longitude feb1-feb20 8;
input id -- feb20;
datalines4;
"GHCN ID","Station Name",County,Elevation,Latitude,Longitude,"Feb 1","Feb 2","Feb 3","Feb 4","Feb 5","Feb 6","Feb 7","Feb 8","Feb 9","Feb 10","Feb 11","Feb 12","Feb 13","Feb 14","Feb 15","Feb 16","Feb 17","Feb 18","Feb 19","Feb 20"
USW00013701,"ABERDEEN PHILLIPS FLD","HARFORD",57,39.47,-76.17,0.0,1.0,0.0,0.0,0.0,0.0,0.0,0.0,M,M,2.5,4.2,0.0,0.0,0.0,M,M,M,M,M
US1MDFR0023,"ADAMSTOWN 0.7 ESE","FREDERICK",317,39.31,-77.46,0.0,1.9,M,M,0.0,M,M,M,M,M,M,M,M,M,0.0,M,0.0,M,M,M
US1MDAA0070,"ANNAPOLIS 3.2 NW","ANNE ARUNDEL",117,39.00,-76.55,M,0.0,0.0,0.0,0.0,0.0,M,M,0.0,M,M,M,M,0.0,0.0,0.0,0.0,M,0.0,M
;;;;
Or you could read it into a "tall" format.
missing m;
data want;
infile 'myfile.txt' dsd truncover firstobs=2;
length id $11 station $40 county $20 elevation latitude longitude day snow 8;
input id -- longitude @;
do day=1 to 20;
input snow @;
output;
end;
run;
... View more