Help using Base SAS procedures

Comparing the EDIT Statement to the DEFINE TABLE Statement

Reply
Super Contributor
Posts: 323

Comparing the EDIT Statement to the DEFINE TABLE Statement

Dear,

 

I am trying to understand the information on this page 

http://documentation.sas.com/?cdcId=pgmsascdc&cdcVersion=9.4_3.2&docsetId=odsproc&docsetTarget=n0do0....

 

Please explain this statement "The column labeled Age remains in the output because Age is defined as a dynamic variable, which is passed to the original Base.Summary table template, and Age is specified as the CLASS variable.". 

 

I do not understand because the column is "sale_type" which is seen in output. But it is showing the column is age. Also I do not see that the age and sale_type column templates defined in the  base.summary code.

which template the sale_type variable using. Please explain. Thank you.

 


OPTIONS NONOTES NOSTIMER NOSOURCE NOSYNTAXCHECK; 61 62 PROC TEMPLATE; SOURCE base.summary;RUN; define table Base.Summary; notes "Summary table for MEANS and SUMMARY"; dynamic clmpct one_var_name one_var_label one_var _double_space_; column class nobs id type ways (varname) (label) (min) (max) (range) (n) (nmiss) (sumwgt) (sum) (mean) (uss) (css) (var) (stddev ) (cv) (stderr) (t) (probt) (lclm) (uclm) (skew) (kurt) (median) (mode) (q1) (q3) (qrange) (p1) (p5) (p10) (p20) (p25) (p30) (p40) (p50) (p60) (p70) (p75) (p80) (p90) (p95) (p99); header h; define h; text "Analysis Variable : " one_var_name " " one_var_label; space = 1; just = C; print = one_var; spill_margin; end; define class; vjust = T; id; generic; blank_internal_dups; end; define nobs; header = "N Obs"; vjust = T; id; blank_internal_dups; end; define id; vjust = T; id; generic; blank_internal_dups; end; define type; header = "Type"; vjust = T; id; blank_internal_dups; end; define ways; header = "Ways"; vjust = T; id; blank_internal_dups; end; define varname; header = "Variable"; id; generic; end; define label; header = "Label"; id; generic; end; define min; define header hmin; text "Minimum"; text2 "Min"; end; header = hmin; generic; end; define max; define header hmax; text "Maximum"; text2 "Max"; end; header = hmax; generic; end; define range; header = "Range"; generic; end; define n; header = "N"; generic; end; define nmiss; header = "N Miss"; generic; end; define sumwgt; header = "Sum Wgts"; generic; end; define sum; header = "Sum"; generic; end; define mean; header = "Mean"; generic; end; define uss; define header huss; text "Uncorrected SS"; text2 "USS"; end; header = huss; generic; end; define css; define header hcss; text "Corrected SS"; text2 "CSS"; end; header = hcss; generic; end; define var; header = "Variance"; generic; end; define stddev; header = "Std Dev"; generic; end; define cv; header = "Coeff of Variation"; generic; end; define stderr; header = "Std Error"; parent = Common.ParameterEstimates.StdErr; generic; end; define t; parent = Common.ParameterEstimates.tValue; generic; end; define probt; parent = Common.ParameterEstimates.Probt; generic; end; define lclm; define header hlclm; text "Lower " clmpct BEST8. %nrstr("%%/CL for Mean"); split = "/"; end; header = hlclm; generic; end; define uclm; define header huclm; text "Upper " clmpct BEST8. %nrstr("%%/CL for Mean"); split = "/"; end; header = huclm; generic; end; define skew; header = "Skewness"; generic; end; define kurt; header = "Kurtosis"; generic; end; define median; header = "Median"; generic; end; define mode; header = "Mode"; generic; end; define q1; header = "Lower Quartile"; generic; end; define q3; header = "Upper Quartile"; generic; end; define qrange; header = "Quartile Range"; generic; end; define p1; header = "1st Pctl"; generic; end; define p5; header = "5th Pctl"; generic; end; define p10; header = "10th Pctl"; generic; end; define p20; header = "20th Pctl"; generic; end; define p25; header = "25th Pctl"; generic; end; define p30; header = "30th Pctl"; generic; end; define p40; header = "40th Pctl"; generic; end; define p50; header = "50th Pctl"; generic; end; define p60; header = "60th Pctl"; generic; end; define p70; header = "70th Pctl"; generic; end; define p75; header = "75th Pctl"; generic; end; define p80; header = "80th Pctl"; generic; end; define p90; header = "90th Pctl"; generic; end; define p95; header = "95th Pctl"; generic; end; define p99; header = "99th Pctl"; generic; end; required_space = 5; control = _control_; double_space = _double_space_; underline; overline; byline; use_format_defaults; split_stack; use_name; order_data; classlevels; end;

 

 

SAS Super FREQ
Posts: 502

Re: Comparing the EDIT Statement to the DEFINE TABLE Statement

Posted in reply to knveraraju91

Columns can be defined without the GENERIC option.  Then there is a one-to-one correspondence between what you see in the template and what the developer put in the procedure.  Most columns of most tables are like this.

 

Columns can be GENERIC.  Many of the columns in the template that you cite are generic.  Then there is not this one to one correspondence.

 

In an ANOVA table, there is always a SOURCE column, columns for MS, SS, F, and so on.

 

In a correlation matrix, crosstab, principal components, and many other tables, the precise nature of the columns of the table can't be known until the proc runs.  Such columns are GENERIC.  The proc uses and reuses the same generic template column definition giving each column different names, labels, formats, etc.

Ask a Question
Discussion stats
  • 1 reply
  • 106 views
  • 1 like
  • 2 in conversation