MACRO TWO CATV: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
K |
K |
||
(8 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 14: | Zeile 14: | ||
|- | |- | ||
| [[Datei:MACRO_TWO_CATV.png|thumb|100px]] | | [[Datei:MACRO_TWO_CATV.png|thumb|100px]] | ||
− | | '''User module''' from [[Phase-III Macro System]] based on '''''[[Fraktal SAS Programming|Fractal System Architecture]]'''''. | + | | '''User module''' from [[Phase-III Macro System]] based on '''''[[Fraktal SAS Programming|Fractal System Architecture]]''. Build table from two nested categorial variables'''. |
|} | |} | ||
== Source == | == Source == | ||
− | + | === Start Definition with Parameters and Defaults === | |
− | %MACRO TWO_CATV(dsn= | + | %MACRO TWO_CATV(dsn=,exclude=,row=,row2=,col=,indent=0,num=,stat=N,weight=Y,space=2,condense=,struct=,struct2=,head2=N,misslin2=,indinc=2) / store des="MACRO TWO_CATV"; |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | === Declares and Upper Level Processing === | |
%LOCAL n_grp v_grp n name; | %LOCAL n_grp v_grp n name; | ||
Zeile 46: | Zeile 29: | ||
'''%IF &STRUCT eq %THEN %LET struct =&DSN;''' | '''%IF &STRUCT eq %THEN %LET struct =&DSN;''' | ||
'''%IF &STRUCT2 eq %THEN %LET struct2=&DSN;''' | '''%IF &STRUCT2 eq %THEN %LET struct2=&DSN;''' | ||
− | %GRP_DESC(dsn=&DSN | + | %GRP_DESC(dsn=&DSN,grp=&ROW,miss=n); |
− | + | %TOP_FILT(dsn=&DSN,grp=&ROW,by=&COL,grplvl=&NUM,var=,condense=&CONDENSE); | |
− | + | %TOP_FREQ(dsn=top_filt,struct=&STRUCT,grp=&ROW,by=&COL); | |
− | + | %TOP_OUTC(dsn=top_freq,head=n,total=n,stat=&STAT,indent=&INDENT,grp=&ROW,rev=n,use=,by=&COL,missline=); | |
− | %TOP_FILT(dsn=&DSN | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | %TOP_FREQ(dsn=top_filt | ||
− | |||
− | |||
− | |||
− | |||
− | %TOP_OUTC(dsn=top_freq | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | === Loop for Lower Level Processing === | |
'''%DO n=1 %TO &N_GRP;''' | '''%DO n=1 %TO &N_GRP;''' | ||
'''%IF %SCAN(&V_GRP,&N) ne &EXCLUDE %THEN %DO;''' | '''%IF %SCAN(&V_GRP,&N) ne &EXCLUDE %THEN %DO;''' | ||
− | %ROW_FILT(dsn=&DSN | + | %ROW_FILT(dsn=&DSN,context=&ROW,subgrp=&N,grp=&ROW2,by=&COL,var=,miss=n); |
− | + | %ROW_FREQ(dsn=row_filt,sum=top_freq,struct=&STRUCT2,context=&ROW,grp=&ROW2,by=&COL,weight=&WEIGHT); | |
− | + | %ROW_OUTC(dsn=row_freq,sum=main_3rd,head=&HEAD2,stat=&STAT,indent=%EVAL(&INDENT+&INDINC),context=&ROW,grp=&ROW2,by=&COL,missline=&MISSLIN2); | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | %ROW_FREQ(dsn=row_filt | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | %ROW_OUTC(dsn=row_freq | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
'''%END;''' | '''%END;''' | ||
'''%END;''' | '''%END;''' | ||
− | + | === Care for Naming and Send Completion Mail === | |
'''%IF &TAB_NAME ne %THEN %DO;''' | '''%IF &TAB_NAME ne %THEN %DO;''' | ||
Zeile 123: | Zeile 60: | ||
%GEN_MAIL(name=&NAME); | %GEN_MAIL(name=&NAME); | ||
− | + | === Close Definition === | |
%MEND TWO_CATV; | %MEND TWO_CATV; | ||
Zeile 131: | Zeile 68: | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
− | !Name !!Description | + | !Name !! Values !!Description |
|- | |- | ||
− | | dsn || input dataset name | + | | dsn || string || input dataset name |
|- | |- | ||
− | | row, row2 || categorial variable name, 2=nested variable | + | | row, row2 || string || categorial variable name, 2=nested variable |
|- | |- | ||
− | | exclude || decode for excluded group from &ROW | + | | exclude || string || decode for excluded group from &ROW |
|- | |- | ||
− | | weight || Y/N | + | | weight || Y/N || multiply percentages for &ROW and &ROW2 |
|- | |- | ||
− | | col || categorial variable name used for columns | + | | col || string || categorial variable name used for columns |
|- | |- | ||
− | | head2 || Y/N | + | | head2 || Y/N || block header for nested variable |
|- | |- | ||
− | | indent, indinc || n | + | | indent, indinc || n || number of indent columns and increment for nested variable |
|- | |- | ||
− | | num || n | + | | num || n || sequence number of output |
|- | |- | ||
− | | stat || Y/N | + | | stat || Y/N || column with statistics names |
|- | |- | ||
− | | space || 1/2/3 | + | | space || 1/2/3 || blank line before or after output and between nesting levels |
|- | |- | ||
− | | struct, struct2 || name of reference dataset used for full decode structure, 2=nested variable | + | | struct, struct2 || string || name of reference dataset used for full decode structure, 2=nested variable |
|- | |- | ||
− | | condense || var#value | + | | condense || var#value || non-distinct variable and true value for &ROW |
|- | |- | ||
− | | misslin2 || Y/N | + | | misslin2 || Y/N || force missing line for nested variable |
|} | |} |
Aktuelle Version vom 28. Oktober 2014, 15:25 Uhr
Workflow Graph | Module Type |
---|---|
User module from Phase-III Macro System based on Fractal System Architecture. Build table from two nested categorial variables. |
Inhaltsverzeichnis
Source
Start Definition with Parameters and Defaults
%MACRO TWO_CATV(dsn=,exclude=,row=,row2=,col=,indent=0,num=,stat=N,weight=Y,space=2,condense=,struct=,struct2=,head2=N,misslin2=,indinc=2) / store des="MACRO TWO_CATV";
Declares and Upper Level Processing
%LOCAL n_grp v_grp n name; %LET name=TWO_CATV; %IF &STRUCT eq %THEN %LET struct =&DSN; %IF &STRUCT2 eq %THEN %LET struct2=&DSN; %GRP_DESC(dsn=&DSN,grp=&ROW,miss=n); %TOP_FILT(dsn=&DSN,grp=&ROW,by=&COL,grplvl=&NUM,var=,condense=&CONDENSE); %TOP_FREQ(dsn=top_filt,struct=&STRUCT,grp=&ROW,by=&COL); %TOP_OUTC(dsn=top_freq,head=n,total=n,stat=&STAT,indent=&INDENT,grp=&ROW,rev=n,use=,by=&COL,missline=);
Loop for Lower Level Processing
%DO n=1 %TO &N_GRP; %IF %SCAN(&V_GRP,&N) ne &EXCLUDE %THEN %DO; %ROW_FILT(dsn=&DSN,context=&ROW,subgrp=&N,grp=&ROW2,by=&COL,var=,miss=n); %ROW_FREQ(dsn=row_filt,sum=top_freq,struct=&STRUCT2,context=&ROW,grp=&ROW2,by=&COL,weight=&WEIGHT); %ROW_OUTC(dsn=row_freq,sum=main_3rd,head=&HEAD2,stat=&STAT,indent=%EVAL(&INDENT+&INDINC),context=&ROW,grp=&ROW2,by=&COL,missline=&MISSLIN2); %END; %END;
Care for Naming and Send Completion Mail
%IF &TAB_NAME ne %THEN %DO; data %SUBSTR(&TAB_NAME,1,3)&NUM%SUBSTR(&TAB_NAME,5,4); set %DO n=1 %TO &N_GRP; %IF &SPACE eq 1 %THEN dummy ; %IF %SCAN(&V_GRP,&N) ne &EXCLUDE %THEN row&NUM._&N ; %IF &SPACE eq 2 %THEN dummy ; %END; %IF &SPACE eq 3 %THEN dummy ; ; run; %END; %GEN_MAIL(name=&NAME);
Close Definition
%MEND TWO_CATV;
Parameters
Name | Values | Description |
---|---|---|
dsn | string | input dataset name |
row, row2 | string | categorial variable name, 2=nested variable |
exclude | string | decode for excluded group from &ROW |
weight | Y/N | multiply percentages for &ROW and &ROW2 |
col | string | categorial variable name used for columns |
head2 | Y/N | block header for nested variable |
indent, indinc | n | number of indent columns and increment for nested variable |
num | n | sequence number of output |
stat | Y/N | column with statistics names |
space | 1/2/3 | blank line before or after output and between nesting levels |
struct, struct2 | string | name of reference dataset used for full decode structure, 2=nested variable |
condense | var#value | non-distinct variable and true value for &ROW |
misslin2 | Y/N | force missing line for nested variable |