<?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 how to check for truncated data in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/how-to-check-for-truncated-data/m-p/557461#M155406</link>
    <description>&lt;P&gt;&amp;nbsp;So I have a data with over a million records say;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;name&amp;nbsp; salary&amp;nbsp;&amp;nbsp;&amp;nbsp; wages&amp;nbsp;&lt;/P&gt;&lt;P&gt;Dog&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 100&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;20&lt;/P&gt;&lt;P&gt;Cat&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 120&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 40&lt;/P&gt;&lt;P&gt;Cattle&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;391&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 35&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; .&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;How do I check if&amp;nbsp; "Cattle " is not truncated in my data and is it also possible to check&amp;nbsp; the variable name for any truncated record/observation ?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Thu, 09 May 2019 14:51:42 GMT</pubDate>
    <dc:creator>CathyVI</dc:creator>
    <dc:date>2019-05-09T14:51:42Z</dc:date>
    <item>
      <title>how to check for truncated data</title>
      <link>https://communities.sas.com/t5/SAS-Programming/how-to-check-for-truncated-data/m-p/557461#M155406</link>
      <description>&lt;P&gt;&amp;nbsp;So I have a data with over a million records say;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;name&amp;nbsp; salary&amp;nbsp;&amp;nbsp;&amp;nbsp; wages&amp;nbsp;&lt;/P&gt;&lt;P&gt;Dog&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 100&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;20&lt;/P&gt;&lt;P&gt;Cat&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 120&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 40&lt;/P&gt;&lt;P&gt;Cattle&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;391&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 35&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; .&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;How do I check if&amp;nbsp; "Cattle " is not truncated in my data and is it also possible to check&amp;nbsp; the variable name for any truncated record/observation ?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 09 May 2019 14:51:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/how-to-check-for-truncated-data/m-p/557461#M155406</guid>
      <dc:creator>CathyVI</dc:creator>
      <dc:date>2019-05-09T14:51:42Z</dc:date>
    </item>
    <item>
      <title>Re: how to check for truncated data</title>
      <link>https://communities.sas.com/t5/SAS-Programming/how-to-check-for-truncated-data/m-p/557463#M155408</link>
      <description>Eyeball test. Run a PROC FREQ and check if they're truncated. There's no way the computer can know if you meant CATTLE or CATT for the text value, and this usually means the data was not read in properly for some reason.</description>
      <pubDate>Thu, 09 May 2019 14:53:21 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/how-to-check-for-truncated-data/m-p/557463#M155408</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2019-05-09T14:53:21Z</dc:date>
    </item>
    <item>
      <title>Re: how to check for truncated data</title>
      <link>https://communities.sas.com/t5/SAS-Programming/how-to-check-for-truncated-data/m-p/557636#M155475</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/253321"&gt;@CathyVI&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;&amp;nbsp;So I have a data with over a million records say;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;name&amp;nbsp; salary&amp;nbsp;&amp;nbsp;&amp;nbsp; wages&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Dog&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 100&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;20&lt;/P&gt;
&lt;P&gt;Cat&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 120&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 40&lt;/P&gt;
&lt;P&gt;Cattle&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;391&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 35&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; .&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;How do I check if&amp;nbsp; "Cattle " is not truncated in my data and is it also possible to check&amp;nbsp; the variable name for any truncated record/observation ?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;I would start with Proc Contents. If the length of any of my defined lengths looks off the there is a problem.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;One question I would also ask is why do you suspect you may have truncated data? The main reason I can think of that possibility is using Proc Import to "read" data. Since Proc Import makes guesses each time a file is read then similar files can end up with different variable properties such as length or variable type. If the data source is a text file of some sort one likely source of truncation can be removed by using a GUESSINGROWS=MAX; statement.&lt;/P&gt;
&lt;P&gt;If your data is coming from some other file type, spreadsheet perhaps, then GUESSINGROWS is &lt;STRONG&gt;not&lt;/STRONG&gt; available and only a few rows are examined to set the variable types and lengths. Make a text file such as CSV. Import that.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;But you still have potential issues with different files. If you were given any documentation as to the expected lengths of the variables then you should use a data step to read the data and use the documentation to set variable types and lengths.&lt;/P&gt;
&lt;P&gt;Note that Proc Import will create&amp;nbsp;data step code when reading a text file. Copy from the editor, set the lengths to the documented or expected lengths. Reread.&lt;/P&gt;</description>
      <pubDate>Thu, 09 May 2019 22:38:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/how-to-check-for-truncated-data/m-p/557636#M155475</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2019-05-09T22:38:22Z</dc:date>
    </item>
    <item>
      <title>Re: how to check for truncated data</title>
      <link>https://communities.sas.com/t5/SAS-Programming/how-to-check-for-truncated-data/m-p/557652#M155483</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/253321"&gt;@CathyVI&lt;/a&gt;&amp;nbsp;wrote:&lt;BR /&gt;
&lt;P&gt;&amp;nbsp;So I have a data with over a million records say;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;name&amp;nbsp; salary&amp;nbsp;&amp;nbsp;&amp;nbsp; wages&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Dog&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 100&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;20&lt;/P&gt;
&lt;P&gt;Cat&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 120&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 40&lt;/P&gt;
&lt;P&gt;Cattle&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;391&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 35&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; .&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;How do I check if&amp;nbsp; "Cattle " is not truncated in my data and is it also possible to check&amp;nbsp; the variable name for any truncated record/observation ?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Thanks.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Truncation implies the transformation of data from source to target.&amp;nbsp; So, by definition, you have untruncated data in source, and potentially truncated data in target.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;So, get the max length of your data from source, then compare to the allocated length of your target.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I'm not saying this is the prettiest code but perhaps you can run with it:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data source;
   set sashelp.class;
run;

proc sql noprint;
   create table lengths as
   select "NAME" as name, max(length(name)) as src_length
   from sashelp.class;
quit;

data target;
   length name $3;  * causes truncation ;
   set source;
run;

proc contents data=target out=contents noprint;
run;

proc sql;
   create table baddata as
   select
      *
   from
      contents a
   inner join
      lengths b
   on
      lowcase(a.name)=lowcase(b.name)
   having
      a.length &amp;lt; b.src_length
   ;
quit;

   &lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 09 May 2019 23:55:48 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/how-to-check-for-truncated-data/m-p/557652#M155483</guid>
      <dc:creator>ScottBass</dc:creator>
      <dc:date>2019-05-09T23:55:48Z</dc:date>
    </item>
  </channel>
</rss>

