libname stat541 '/home/grego1/STAT 541/'; run; *Placing LENGTH in the right place; data ecoli; set stat541.ecoli; *This actually generates a warning; length station $9.; run; proc contents data=ecoli; run; data ecoli; length station $9.; set stat541.ecoli; run; proc contents data=ecoli; run; *Truncation and PROC COMPARE; data ecolirt; length ratio 4.; set stat541.ecoli; ratio=ecoli/fecalcoli; run; data ecolir; set stat541.ecoli; ratio=ecoli/fecalcoli; run; *There are 135 cases with no differences--let's look at them; *Note that record 36 is missing, for instance; proc compare base=ecolir compare=ecolirt out=ecolicomp outdif maxprint=100; run; data ecolicomp; set ecolicomp (rename=(_obs_=obsno)); aratio=abs(ratio); drop ratio; run; title 'Ecoli/Fecal Coliform'; *Let's print observations with an absolute difference of 0; proc sql outobs=150; select r.record, r.ecoli, r.fecalcoli, r.ratio, c.aratio from ecolir as r inner join ecolicomp as c on r.record=c.obsno order by aratio; quit; *Some of these look as though diff should be 0; proc sql outobs=50; select r.record, r.ecoli, r.fecalcoli, r.ratio, c.aratio from ecolir as r inner join ecolicomp as c on r.record=c.obsno order by aratio descending; quit; title; *Compress data sets with different options. Fall2008 and fall2009 are; *permanent SAS data sets; libname stat541 '/home/grego1/STAT 541'; run; data f08comp (compress=yes); set stat541.fall2008; data f09comp (compress=binary); set stat541.fall2009; run; *Create a random sample with a lot of repeats; proc format; value tffmt 1="T" 0="F"; run; data tftest (drop=i); array quiz $ q1-q40; do i=1 to 100000; do over quiz; quiz=put(rand("BERNOULLI",0.5),tffmt.); * quiz=put(ceil(2*ranuni(0)-1),tffmt.); end; output; end; run; data tfcomp (compress=binary); set tftest; run;