<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: SAS: enhance proc contents with data quality checks for each variable (macro, loop) in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/SAS-enhance-proc-contents-with-data-quality-checks-for-each/m-p/259668#M50253</link>
    <description>&lt;P&gt;stackods&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/4954"&gt;@Astounding&lt;/a&gt; wrote:&lt;BR /&gt;
&lt;P&gt;It's entirely possible that this would fit better.&amp;nbsp; In may depend on the ultimate objective of how the statistics will be used.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Is the option STATODS or STACKODS?&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;It is easier to start with a more normal (narrow) data scructure and make is less normal (wide) than the other way around.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I always thought the default OUTPUT data set structure should be enhanced to allow more _STAT_s to be output but they "gave" is STACKODS instead.&lt;/P&gt;</description>
    <pubDate>Tue, 29 Mar 2016 13:57:18 GMT</pubDate>
    <dc:creator>data_null__</dc:creator>
    <dc:date>2016-03-29T13:57:18Z</dc:date>
    <item>
      <title>SAS: enhance proc contents with data quality checks for each variable (macro, loop)</title>
      <link>https://communities.sas.com/t5/SAS-Programming/SAS-enhance-proc-contents-with-data-quality-checks-for-each/m-p/259644#M50243</link>
      <description>&lt;P&gt;Dear experts,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;I have the following table (input_analysis) as result of a proc content:&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;Library&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;Library Member Name&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;Data Set&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;Special&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;Variable Name&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;Variable&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;Variable&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;Variable&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;Variable&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;Variable Format&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;Name&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;Label&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;Data Set&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;Type&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;Length&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;Number&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;Label&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;Type (From&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;TYPE=)&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;IN&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;AG_201602&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT color="#008000"&gt;AB&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;8&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;43&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;BEST&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;IN&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;AG_201602&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT color="#008000"&gt;ACTIF&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;61&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;$&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;IN&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;AG_201602&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT color="#008000"&gt;ALT_RV_NR&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;8&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;71&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;BEST&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;IN&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;AG_201602&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;FONT color="#008000"&gt;ALT_VNR&lt;/FONT&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;8&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;70&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;BEST&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;I enhance the data with the following additional information:&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;proc&lt;/STRONG&gt; &lt;STRONG&gt;sql&lt;/STRONG&gt;; create table DC.input_analysis as select t.*&lt;/P&gt;&lt;P&gt;,t1.Variable_Name_Original&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;,t1.Variable_Name_English&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;,t1.Variable_description&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000FF"&gt;,t1.Variable_value_list&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;,t1.Variable_category&amp;nbsp;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000FF"&gt;,t1.Variable_min&amp;nbsp;&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;&lt;FONT color="#0000FF"&gt;,t1.Variable_max&lt;/FONT&gt;&lt;/P&gt;&lt;P&gt;from DC.input_analysis t&lt;/P&gt;&lt;P&gt;left outer join In.Variables_information t1 on (t.variable_name=t1.Variable_Name_Original or t.variable_name=t1.Variable_Name_English)&lt;/P&gt;&lt;P&gt;;&lt;STRONG&gt;run&lt;/STRONG&gt;;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;On the basis of the &lt;FONT color="#0000FF"&gt;new variables&lt;/FONT&gt; (from Variables_information t1), I should perform some checks on the data related to &lt;FONT color="#008000"&gt;each observation of the proc contents&amp;nbsp;(e.g. ACTIF contained in Work.Test)&lt;/FONT&gt;.&lt;/LI&gt;&lt;LI&gt;I enhance the table with some variables that should be calculated for each observation of the proc content (i. variables in Work.Test)&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;&lt;STRONG&gt;proc&lt;/STRONG&gt; &lt;STRONG&gt;sql&lt;/STRONG&gt;; create table DC.input_analysis_result as select&lt;/P&gt;&lt;P&gt;t.*&lt;/P&gt;&lt;P&gt;,&lt;STRONG&gt;0&lt;/STRONG&gt; as n_missing&lt;/P&gt;&lt;P&gt;,&lt;STRONG&gt;0&lt;/STRONG&gt; as perc_missing&lt;/P&gt;&lt;P&gt;,&lt;STRONG&gt;0&lt;/STRONG&gt; as over_up_bound&lt;/P&gt;&lt;P&gt;,&lt;STRONG&gt;0&lt;/STRONG&gt; as max&lt;/P&gt;&lt;P&gt;,&lt;STRONG&gt;0&lt;/STRONG&gt; as over_dow_bound&lt;/P&gt;&lt;P&gt;,&lt;STRONG&gt;0&lt;/STRONG&gt; as min&lt;/P&gt;&lt;P&gt;,&lt;STRONG&gt;0&lt;/STRONG&gt; as n_not_value_list&lt;/P&gt;&lt;P&gt;,"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; " as unexpected_values&lt;/P&gt;&lt;P&gt;from DC.input_analysis t ;&lt;STRONG&gt;run&lt;/STRONG&gt;;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;5. I would like to perform some calculations (here below the first one) recursively for each observation of the proc contents (variable name):&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;%let variable_x= ACTIF&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;proc&lt;/STRONG&gt; &lt;STRONG&gt;summary&lt;/STRONG&gt; noprint&lt;/P&gt;&lt;P&gt;data=test n nmiss min max;&lt;/P&gt;&lt;P&gt;var &amp;amp;variable_x.;&lt;/P&gt;&lt;P&gt;output out=missing_stat n=num_obs nmiss=num_miss min=min_value max=max_value&lt;/P&gt;&lt;P&gt;;&lt;STRONG&gt;run&lt;/STRONG&gt;;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 6. &amp;nbsp; &amp;nbsp;And store the results in the table DC.input_analysis_result&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;How can I automatize it and keep it as simple as possible? Thank a lot in advance.&lt;/P&gt;</description>
      <pubDate>Tue, 29 Mar 2016 12:57:46 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/SAS-enhance-proc-contents-with-data-quality-checks-for-each/m-p/259644#M50243</guid>
      <dc:creator>Sir_Highbury</dc:creator>
      <dc:date>2016-03-29T12:57:46Z</dc:date>
    </item>
    <item>
      <title>Re: SAS: enhance proc contents with data quality checks for each variable (macro, loop)</title>
      <link>https://communities.sas.com/t5/SAS-Programming/SAS-enhance-proc-contents-with-data-quality-checks-for-each/m-p/259647#M50245</link>
      <description>&lt;P&gt;Rather than try to loop through every variable, you could make life much simpler along these lines:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;proc summary data=test;&lt;/P&gt;
&lt;P&gt;var _numeric_;&lt;/P&gt;
&lt;P&gt;output out=nmiss (drop=_type_ _freq_) nmiss=;&lt;/P&gt;
&lt;P&gt;output out=n (drop=_type_ _freq_) n=;&lt;/P&gt;
&lt;P&gt;output out=max (drop=_type_ _freq_) max=;&lt;/P&gt;
&lt;P&gt;output out=min (drop=_type_ _freq_) min=;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The original variable names get reused to hold the 4 statistics, and you don't need to know the names.&lt;/P&gt;</description>
      <pubDate>Tue, 29 Mar 2016 13:09:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/SAS-enhance-proc-contents-with-data-quality-checks-for-each/m-p/259647#M50245</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2016-03-29T13:09:16Z</dc:date>
    </item>
    <item>
      <title>Re: SAS: enhance proc contents with data quality checks for each variable (macro, loop)</title>
      <link>https://communities.sas.com/t5/SAS-Programming/SAS-enhance-proc-contents-with-data-quality-checks-for-each/m-p/259659#M50248</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/4954"&gt;@Astounding&lt;/a&gt; wrote:&lt;BR /&gt;
&lt;P&gt;Rather than try to loop through every variable, you could make life much simpler along these lines:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;proc summary data=test;&lt;/P&gt;
&lt;P&gt;var _numeric_;&lt;/P&gt;
&lt;P&gt;output out=nmiss (drop=_type_ _freq_) nmiss=;&lt;/P&gt;
&lt;P&gt;output out=n (drop=_type_ _freq_) n=;&lt;/P&gt;
&lt;P&gt;output out=max (drop=_type_ _freq_) max=;&lt;/P&gt;
&lt;P&gt;output out=min (drop=_type_ _freq_) min=;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The original variable names get reused to hold the 4 statistics, and you don't need to know the names.&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;PROC MEANS using STA&lt;FONT color="#FF0000"&gt;CK&lt;/FONT&gt;ODS makes a much nicer output file structure. &amp;nbsp;One row for each var and class level with statistics as variables.&lt;/P&gt;</description>
      <pubDate>Tue, 29 Mar 2016 13:53:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/SAS-enhance-proc-contents-with-data-quality-checks-for-each/m-p/259659#M50248</guid>
      <dc:creator>data_null__</dc:creator>
      <dc:date>2016-03-29T13:53:44Z</dc:date>
    </item>
    <item>
      <title>Re: SAS: enhance proc contents with data quality checks for each variable (macro, loop)</title>
      <link>https://communities.sas.com/t5/SAS-Programming/SAS-enhance-proc-contents-with-data-quality-checks-for-each/m-p/259664#M50252</link>
      <description>&lt;P&gt;It's entirely possible that this would fit better.&amp;nbsp; In may depend on the ultimate objective of how the statistics will be used.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Is the option STATODS or STACKODS?&lt;/P&gt;</description>
      <pubDate>Tue, 29 Mar 2016 13:47:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/SAS-enhance-proc-contents-with-data-quality-checks-for-each/m-p/259664#M50252</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2016-03-29T13:47:19Z</dc:date>
    </item>
    <item>
      <title>Re: SAS: enhance proc contents with data quality checks for each variable (macro, loop)</title>
      <link>https://communities.sas.com/t5/SAS-Programming/SAS-enhance-proc-contents-with-data-quality-checks-for-each/m-p/259668#M50253</link>
      <description>&lt;P&gt;stackods&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/4954"&gt;@Astounding&lt;/a&gt; wrote:&lt;BR /&gt;
&lt;P&gt;It's entirely possible that this would fit better.&amp;nbsp; In may depend on the ultimate objective of how the statistics will be used.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Is the option STATODS or STACKODS?&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;It is easier to start with a more normal (narrow) data scructure and make is less normal (wide) than the other way around.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I always thought the default OUTPUT data set structure should be enhanced to allow more _STAT_s to be output but they "gave" is STACKODS instead.&lt;/P&gt;</description>
      <pubDate>Tue, 29 Mar 2016 13:57:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/SAS-enhance-proc-contents-with-data-quality-checks-for-each/m-p/259668#M50253</guid>
      <dc:creator>data_null__</dc:creator>
      <dc:date>2016-03-29T13:57:18Z</dc:date>
    </item>
    <item>
      <title>Re: SAS: enhance proc contents with data quality checks for each variable (macro, loop)</title>
      <link>https://communities.sas.com/t5/SAS-Programming/SAS-enhance-proc-contents-with-data-quality-checks-for-each/m-p/259692#M50262</link>
      <description>&lt;P&gt;Thanks a lot! very appreciated. The output of the proc means with stackods is exactly what I was looking for.&lt;/P&gt;&lt;P&gt;Still one remark: I would like also to have the not numeric variable in the list (of course without min and max) with the amount of missing values. Is possible to integrate it in the calculation or should I do it separately?&lt;/P&gt;&lt;P&gt;&amp;nbsp;Still 2 statistics that I would like to have with the same output structure:&lt;/P&gt;&lt;OL&gt;&lt;LI&gt;in the table that I mentioned above (create table DC.input_analysis) there is a variable named Variable_value_list that contains for all the non numeric variables the value lists. E.g. for the Variable Source I have AG, SA. Check requested: running a proc sql for each not numeric variable and grouping by variable in order to get the value list and list all the values that are not in the value list (e.g. I found AB instead of AG and SA put not like in (‘%AG%’,’%SA%’)&lt;/LI&gt;&lt;LI&gt;in the table that I mentioned above (create table DC.input_analysis) I have also to variables&lt;/LI&gt;&lt;/OL&gt;&lt;P&gt;,t1.Variable_min,t1.Variable_max indicating the upper and lower bound.&lt;/P&gt;&lt;P&gt;Min and max generated within the proc means are already a helpful indication but my aim is also to get the amount of observation for the numeric variables that do not satisfy the boundary conditions.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Is there also in this case a compact and easy understandable code?&lt;/P&gt;</description>
      <pubDate>Tue, 29 Mar 2016 14:36:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/SAS-enhance-proc-contents-with-data-quality-checks-for-each/m-p/259692#M50262</guid>
      <dc:creator>Sir_Highbury</dc:creator>
      <dc:date>2016-03-29T14:36:31Z</dc:date>
    </item>
  </channel>
</rss>

