/*..........................cten-kor.sas.....................*/ /* pro reml */ /*nacteni souboru uzitkovosti 15.10.2007 ..*/ dm output 'clear'; dm log 'clear'; filename jedinci 'c:\xxx\dlouhovekost\kkmd24.dat'; /* ........cte....*/ filename dlouh 'c:\xxx\dlouhovekost\vety'; /*..zapisuje..*/ /*......................................................*/ data plem; infile jedinci recfm=v lrecl=2000 missover; array pr prv1-prv126; array dr dru1-dru126; array tr tre1-tre126; input krava prodziv cens trid laktace hys stav uzitk otec om usek @ ; /* krava, ktera jeste nedosáhla veku 2000 dni a stale zije je vyrazena */ if prodziv < 2000 and cens =0 then delete; if hys > 1000 then delete ; if usek NE 0 then do; do i=2 to (usek+1) ; input pr(i) dr(i) tr(i) @; end; end; run; proc means; /*proc print;*/ run; /*.....................................................................*/ data celk;set plem; /*...testovaní zmen, které nastaly behem zivota zvířete -identifikace zmeny -kdy nastala -oprava .............*/ file dlouh; array pr prv1-prv126; array dr dru1-dru126; array tr tre1-tre126; dr(1) = 1 ; vek = dr(1) ; rozvek = 1 ; zije = 100 ; put krava zije trid laktace vek rozvek hys stav uzitk otec om ; if usek NE 0 then do; do i=2 to (usek+1) ; if dr(i) >2000 then goto aaa; vek=dr(i); if pr(i) =5 then do; laktace=tr(i); end; else if pr(i) =6 then do; hys=tr(i); end; else if pr(i)=7 then do; stav=tr(i); end; else if pr(i)=8 then do; uzitk=tr(i); end; if dr(i) ne dr(i-1) then do; rozvek = dr(i) - dr(i-1) ; end; if dr(i+1) ne vek then do; vvv = vek ; /*zmeny,ktere nastaly ve stejny den se zapisují na stejný řádek*/ put krava zije trid laktace vek rozvek hys stav uzitk otec om ; end; end; end; if prodziv >2000 then goto aaa; vek = prodziv; if usek = 0 then rozvek = vek-1 ; else rozvek = prodziv - vvv ; put krava zije trid laktace vek rozvek hys stav uzitk otec om ; goto bbb; aaa: rozvek = 2000 - vek ; vek = 2000 ; put krava zije trid laktace vek rozvek hys stav uzitk otec om ; goto ccc; bbb: if vek le 2000 then do; zije = 0.1 ; rozvek = 2000 -vek ; vek = vek+1 ; put krava zije trid laktace vek rozvek hys stav uzitk otec om ; rozvek = 1 ; vek = 2000 ; put krava zije trid laktace vek rozvek hys stav uzitk otec om ; end; ccc: proc means; /*....................................kontrola .....................*/ data a; infile dlouh ; input krava zije trid laktace vek rozvek hys stav uzitk otec om ; proc means; run; /*............................konec ..............................*/ data ch;set a; if vek>2000;*if om = 0; run;