/*total2001 ......sigue despues con ... import + merge + export*/ /*importo todos los archivos necesarios export en todo: CISZV USCIS RASA DATNAR MESNAR ROHY ROKUZIT DATOKO MESOKO POCKUZ POCKUZZ CHOV VEK DATKO UZIT TUKPR BILPR LAKPR DIM ooooooooooojjjjjooooooooooooo que esta LAKTO en tot01.txt y falta POCKU POCKUZZ*/ dm output 'clear'; dm log 'clear'; filename todo01 'D:\Gabriel\finalEBV\data\todo01'; PROC IMPORT OUT= WORK.var01 DATAFILE= "D:\Gabriel\finalEBV\data\var2001.txt" DBMS=TAB REPLACE; GETNAMES=YES; DATAROW=2; RUN; /*import permanente 99-02*/ PROC IMPORT OUT= WORK.perm01 DATAFILE= "D:\Gabriel\finalEBV\UZIT\perm99_02.txt" DBMS=TAB REPLACE; GETNAMES=YES; DATAROW=2; RUN; PROC IMPORT OUT= WORK.U2001 DATAFILE= "D:\Gabriel\finalEBV\UZIT\u2001.txt" DBMS=TAB REPLACE; GETNAMES=YES; DATAROW=2; RUN; /*merge var01 + perm01*/ data PER01; set WORK.perm01; proc sort; by CISZV; data var01; set WORK.var01; proc sort; by CISZV; data pervar01; merge PER01 var01; by CISZV ; If DATOKO; if chov=9999 then chov=.;IF LAKTO=99 THEN LAKTO=.; run; proc means; title "PROBANDO 2001"; run; data pervar01; set WORK.pervar01; /*if rasa=. then rasa=9; if rohy=. then rohy=9; if mesnar=. then mesnar=99;*/ If datnar<29586 then datnar=.; /*if datnar=. then datnar=99999;*/ proc means; title "PROBANDO 1ero 2001"; run; /*merge pervar01 + u2001*/ data u01; set WORK.u2001; proc sort; by CISZV; data pervar01; set WORK.pervar01; proc sort; by CISZV; data pervaruzit01; merge u01 pervar01; by CISZV ; if datko=. then delete; run; proc means; title "PROBANDO 2do 2001"; run; /*filtros y nuevas variables*/ data pervaruz01; set pervaruzit01; VEK=(DATOKO-DATNAR)/365; DIM=DATKO-DATOKO; VEKB=(DATKO-DATNAR)/365; proc means; title "Medias despues de 0 filtro 2001"; run; data tot01; set pervaruz01; if UZIT<0.3 then delete; if UZIT>30 then delete; if TUKPR>9 then TUKPR= .; if TUKPR<2 then TUKPR= .; if BILPR>7 then BILPR= .; if BILPR<1 then BILPR= .; if LAKPR>7 then LAKPR= .; if LAKPR<1 then LAKPR= .; if RASA = . then delete; if RASA < 1 then delete; if RASA > 2 then delete; if DIM<10 then delete; if vek<(275/365) then delete; proc means;title "Medias despues de 1er filtro, limites fisiologicos 2001"; run; data tot01a; set tot01; /*uprava roku uzitkovosti na poslední den 31.12.xxxx */ /*rozdil mezi posledni den roku uzitkovosti a DATNAR a srovnavani s LAKTO */ ROKUZUPR =37256; DNYNU = ROKUZUPR-DATNAR; ROKYNU = DNYNU/365; if rokynu >15 then delete; if rokynu <0.5 then delete; proc means;title "Medias despues de 2do filtro, dat nar vs. poradi laktace 2001"; run; /* rozdil mezi posledni den roku uzitkovosti a DATOKOZ */ /*platny DATOKOZ od 1/10/n-1 do 30/9/n n=ROKUZIT*/ data tot01b; set tot01a; DIFOKOU = ROKUZUPR-DATOKO; if DIFOKOU <92 then delete; if DIFOKOU >457 then delete; proc means;title "Medias despues de 3er filtro, dat okoz vs. rok uzitk 2001"; run; /* rozdil mezi posledni den roku a DATKO*/ /* platny DATKO od 1/10/n-1 do 31/3/n+1 */ data tot01c; set tot01b; DIFUKO = ROKUZUPR-DATKO; if DIFUKO <-90 then delete; if DIFUKO >457 then delete; proc means;title "Medias despues de 4to filtro, datum kontrola vs. rok uzitk 2001"; run; /*exportacion de los resultados*/ data t; set tot01c; keep CISZV USCIS RASA DATNAR MESNAR ROHY ROKUZIT DATOKO MESOKOZ POCKUZ POCKUZZ CHOV VEK DATKO UZIT TUKPR BILPR LAKPR DIM; file todo01; put CISZV USCIS RASA DATNAR MESNAR ROHY ROKUZIT DATOKO MESOKOZ POCKUZ POCKUZZ CHOV VEK DATKO UZIT TUKPR BILPR LAKPR DIM; run; PROC EXPORT DATA= WORK.tot01c OUTFILE= "D:\Gabriel\finalEBV\data\tot01.txt" DBMS=TAB REPLACE; RUN;