/* compseg2.sas A SAS program to read a Compustat Segment file, adapted by Sarah Leonard from a program by Haim Mozes. Reformatting done, and missing value treatment added, by Don Cram 9/8/97. */ filename chdata '/db/scratch/indseg.ch'; libname sasdata '/db/compustat/sasdata'; data sasdata.indseg; infile chdata lrecl=774 pad; input dnum 1-4 cnum $ 5-10 cic 11-13 stk 14 smbl $ 15-22 file 23-24 zlist 25-26 @55 coname $ 55-82 ssrce 83-84 fyr 85-86 year 87-88 fundf 89-94 sucode 95 sid 96-97 segn 98-99 sname $ 100-127 pname1 $ 128-147 pname2 $ 148-167 pname3 $ 168-187 pname4 $ 188-207 cname1 $ 208-223 cname2 $ 224-239 cname3 $ 240-255 cname4 $ 256-271 cname5 $ 272-287 cname6 $ 288-303 ssic1 304-307 ssic2 308-311 psic1 312-315 psic2 316-319 psic3 320-323 psic4 324-327 @328 psale1 10.3 psale2 10.3 psale3 10.3 psale4 10.3 csale1 10.3 csale2 10.3 csale3 10.3 csale4 10.3 csale5 10.3 csale6 10.3 sdata1 10.3 sdata2 10.3 sdata3 10.3 sdata4 10.3 sdata5 10.3 sdata6 10.3 sdata7 10.3 sdata8 10.3 sdata9 10.3 sdata10 10.3 sdata11 10.3 sdata12 10.3 sdata13 10.3 sdata14 10.3 sdata15 10.3 sdata16 10.3 sdata17 10.3 sdata18 10.3 sdata19 10.3 sdata20 10.3 sdata21 10.3 sdata22 10.3 @735 foot1 $ 735-736 foot2 $ 737-738 foot3 $ 739-740 foot4 $ 741-742 foot5 $ 743-744 foot6 $ 745-746 foot7 $ 747-748 foot8 $ 749-750 foot9 $ 751-752 foot10 $ 753-754 foot11 $ 755-756 foot12 $ 757-758 foot13 $ 759-760 foot4 $ 761-762 foot15 $ 763-764 foot16 $ 765-766 foot17 $ 767-768 foot8 $ 769-770 foot19 $ 771-772 foot20 $ 773-774; /* Replace Compustat Universal missing value code of -.001 by SAS missing value code. Programmers note that for IBM360/370 format Compustat data, the missing value code to be replaced is .0001. See Compustat Technical Guide and/or CRSP-L FAQ for explanation. */ array numerics {*} cic stk file zlist ssrce fyr year fundf sucode sid segn ssic1 ssic2 psic1-psic4 psale1-psale4 csale1-csale6 sdata1-sdata22; do i = 1 to dim(numerics); if numerics{i} = -.001 then numerics{i} = .; end; drop i; run; endsas;