<?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: Data Quality Report in SAS in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Data-Quality-Report-in-SAS/m-p/872207#M344583</link>
    <description>&lt;P&gt;Hi &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/23718"&gt;@AZIQ1&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you have access to SAS Enterprise Guide or SAS Studio, you can use the "Characterize Data" task to analyze your table and produce similar results to your desired output.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Hope this helps&lt;/P&gt;</description>
    <pubDate>Wed, 26 Apr 2023 11:18:09 GMT</pubDate>
    <dc:creator>AhmedAl_Attar</dc:creator>
    <dc:date>2023-04-26T11:18:09Z</dc:date>
    <item>
      <title>Data Quality Report in SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Data-Quality-Report-in-SAS/m-p/872081#M344522</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;I want to run a report that gives me all the categories for all columns with percentages in one go. Like a single report. My tables could have &amp;gt;100 categorical (character) value fields. Issue is that it is taking very long and does not have enough memory to run for all fields - any ideas how to handle it&lt;/P&gt;&lt;P&gt;Have&lt;/P&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Id&lt;/TD&gt;&lt;TD&gt;Gender&lt;/TD&gt;&lt;TD&gt;State&lt;/TD&gt;&lt;TD&gt;Grade&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;Male&lt;/TD&gt;&lt;TD&gt;IN&lt;/TD&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;Female&lt;/TD&gt;&lt;TD&gt;MO&lt;/TD&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;Female&lt;/TD&gt;&lt;TD&gt;TX&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;Null&lt;/TD&gt;&lt;TD&gt;TX&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;Null&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;Null&lt;/TD&gt;&lt;TD&gt;TX&lt;/TD&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Want a single output&amp;nbsp;&lt;/P&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Gender&lt;/TD&gt;&lt;TD&gt;n&lt;/TD&gt;&lt;TD&gt;%&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;M&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;17%&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;F&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;33%&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Null&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;50%&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;State&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;IN&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;17%&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;MO&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;17%&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;TX&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;50%&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Blank&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;17%&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Grade&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;17%&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;17%&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;33%&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Blank&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;33%&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
      <pubDate>Wed, 26 Apr 2023 00:46:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Data-Quality-Report-in-SAS/m-p/872081#M344522</guid>
      <dc:creator>AZIQ1</dc:creator>
      <dc:date>2023-04-26T00:46:42Z</dc:date>
    </item>
    <item>
      <title>Re: Data Quality Report in SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Data-Quality-Report-in-SAS/m-p/872199#M344580</link>
      <description>&lt;P&gt;Can you show your current solution?&lt;/P&gt;</description>
      <pubDate>Wed, 26 Apr 2023 10:30:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Data-Quality-Report-in-SAS/m-p/872199#M344580</guid>
      <dc:creator>rudfaden</dc:creator>
      <dc:date>2023-04-26T10:30:40Z</dc:date>
    </item>
    <item>
      <title>Re: Data Quality Report in SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Data-Quality-Report-in-SAS/m-p/872207#M344583</link>
      <description>&lt;P&gt;Hi &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/23718"&gt;@AZIQ1&lt;/a&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you have access to SAS Enterprise Guide or SAS Studio, you can use the "Characterize Data" task to analyze your table and produce similar results to your desired output.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Hope this helps&lt;/P&gt;</description>
      <pubDate>Wed, 26 Apr 2023 11:18:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Data-Quality-Report-in-SAS/m-p/872207#M344583</guid>
      <dc:creator>AhmedAl_Attar</dc:creator>
      <dc:date>2023-04-26T11:18:09Z</dc:date>
    </item>
    <item>
      <title>Re: Data Quality Report in SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Data-Quality-Report-in-SAS/m-p/872216#M344584</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;ods select none;
ods noresults;
ods output OneWayFreqs=OneWayFreqs;
proc freq data=sashelp.class ;
table _all_/ list;
run;
ods select all;

data temp;
set OneWayFreqs(drop=Table );
value=coalescec(of _character_);
keep value;
run;
data want;
 merge OneWayFreqs(keep=Table Frequency Percent) temp;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 26 Apr 2023 11:50:57 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Data-Quality-Report-in-SAS/m-p/872216#M344584</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2023-04-26T11:50:57Z</dc:date>
    </item>
    <item>
      <title>Re: Data Quality Report in SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Data-Quality-Report-in-SAS/m-p/872235#M344594</link>
      <description>Maybe look into using proc report or tabulate instead. If that does not work, I would loop over the variable.</description>
      <pubDate>Wed, 26 Apr 2023 12:42:48 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Data-Quality-Report-in-SAS/m-p/872235#M344594</guid>
      <dc:creator>rudfaden</dc:creator>
      <dc:date>2023-04-26T12:42:48Z</dc:date>
    </item>
    <item>
      <title>Re: Data Quality Report in SAS</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Data-Quality-Report-in-SAS/m-p/872312#M344625</link>
      <description>&lt;P&gt;Suggest: Provide a bit better description of your data. You can do that with Proc Freq and NLEVELS to report on the number of levels of each variable. Example:&lt;/P&gt;
&lt;PRE&gt;ods select nlevels;
proc freq data=sashelp.class nlevels;
run;&lt;/PRE&gt;
&lt;P&gt;The ODS select means that only the Nlevels table is generated which should not run out of memory but will give us an idea just how much stuff you are dealing with. &lt;/P&gt;
&lt;P&gt;"Blank" is not a SAS value you will see. Depending on which procedure/approach you are dealing with you can use the MISSING option to get a count.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You can run into memory issues when generated large tables because the table with all the border information and such are stored in memory before writing out the results. If you have the default HTML destination and are sending the data to another ods destination that can seriously increase the memory needed. So you might have better results by closing the HTML destination and writing to only one destination like ODS RTF of PDF.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;One basic syntax would look like:&lt;/P&gt;
&lt;PRE&gt;proc tabulate data=yourSetNameHere;
   class _character_/missing;
   table _character_, n pctn;
run;&lt;/PRE&gt;
&lt;P&gt;but missing values will be at the top of each as the default order for character values is alphabetic and blanks come before any other printable character.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 26 Apr 2023 16:35:51 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Data-Quality-Report-in-SAS/m-p/872312#M344625</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2023-04-26T16:35:51Z</dc:date>
    </item>
  </channel>
</rss>

