<?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 Determining max and min length of variables in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Determining-max-and-min-length-of-variables/m-p/229603#M41561</link>
    <description>&lt;P&gt;I need some help determining the maximum and minimum length of Character and Numeric variables. Right now, the program never ends, and it seems the program is in an endless loop, with the log populating with the same note n number of times. Is there another efficient way of achieving this?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Code:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;%let len= %sysfunc(length(Variable));&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data _null_;&lt;/P&gt;
&lt;P&gt;set Libref.TableA;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If vtype(Variable)="C" then do;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; call execute ("proc sql;&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;&amp;nbsp; Create table Max_Min_Length as select Max(length(Variable)) as MxL, Min(length(Variable)) as MnL&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; from Libref.TableA;&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;&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; quit;");&lt;/P&gt;
&lt;P&gt;&amp;nbsp;end;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Else If vtype(Variable)="N" then do;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; call execute ("proc sql;&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;&amp;nbsp;&amp;nbsp; Create table Max_Min_Length as select Max(length(put(Variable, &amp;amp;len..))) as MxL,&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Min(length(put(Variable, &amp;amp;len..)) as MnL from Libref.TableA;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; quit;");&lt;/P&gt;
&lt;P&gt;end;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Mon, 12 Oct 2015 22:06:56 GMT</pubDate>
    <dc:creator>zoomzoom</dc:creator>
    <dc:date>2015-10-12T22:06:56Z</dc:date>
    <item>
      <title>Determining max and min length of variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Determining-max-and-min-length-of-variables/m-p/229603#M41561</link>
      <description>&lt;P&gt;I need some help determining the maximum and minimum length of Character and Numeric variables. Right now, the program never ends, and it seems the program is in an endless loop, with the log populating with the same note n number of times. Is there another efficient way of achieving this?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Code:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;%let len= %sysfunc(length(Variable));&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data _null_;&lt;/P&gt;
&lt;P&gt;set Libref.TableA;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If vtype(Variable)="C" then do;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp; call execute ("proc sql;&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;&amp;nbsp; Create table Max_Min_Length as select Max(length(Variable)) as MxL, Min(length(Variable)) as MnL&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; from Libref.TableA;&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;&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; quit;");&lt;/P&gt;
&lt;P&gt;&amp;nbsp;end;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Else If vtype(Variable)="N" then do;&lt;/P&gt;
&lt;P&gt;&amp;nbsp; call execute ("proc sql;&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;&amp;nbsp;&amp;nbsp; Create table Max_Min_Length as select Max(length(put(Variable, &amp;amp;len..))) as MxL,&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Min(length(put(Variable, &amp;amp;len..)) as MnL from Libref.TableA;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; quit;");&lt;/P&gt;
&lt;P&gt;end;&lt;/P&gt;
&lt;P&gt;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 12 Oct 2015 22:06:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Determining-max-and-min-length-of-variables/m-p/229603#M41561</guid>
      <dc:creator>zoomzoom</dc:creator>
      <dc:date>2015-10-12T22:06:56Z</dc:date>
    </item>
    <item>
      <title>Re: Determining max and min length of variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Determining-max-and-min-length-of-variables/m-p/229606#M41563</link>
      <description>&lt;P&gt;What you want to do only makes sense for character variables.&amp;nbsp;Numeric variables use 8 Bytes for storage. How long the printed string is depends on the format assigned.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Here a code version of how to do this.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data inter;
  set sashelp.class;
  array chars _character_;
  length __varname $32;
  do over chars;
    __varname=vname(chars);
    __length=lengthn(chars);
    output;
  end;
run;

proc sql;
  create table want as
  select __varname as varname, max(__length) as max_length, min(__length) as min_length
  from inter
  group by varname
  ;
quit;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 12 Oct 2015 22:34:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Determining-max-and-min-length-of-variables/m-p/229606#M41563</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2015-10-12T22:34:08Z</dc:date>
    </item>
    <item>
      <title>Re: Determining max and min length of variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Determining-max-and-min-length-of-variables/m-p/229617#M41566</link>
      <description>Hello Patrick,&lt;BR /&gt;&lt;BR /&gt;Does that mean the max and min length of numeric variables will be same?</description>
      <pubDate>Tue, 13 Oct 2015 00:54:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Determining-max-and-min-length-of-variables/m-p/229617#M41566</guid>
      <dc:creator>zoomzoom</dc:creator>
      <dc:date>2015-10-13T00:54:42Z</dc:date>
    </item>
    <item>
      <title>Re: Determining max and min length of variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Determining-max-and-min-length-of-variables/m-p/229618#M41567</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/40593"&gt;@zoomzoom﻿&lt;/a&gt;&lt;/P&gt;
&lt;P&gt;It means that using a character function for a numeric variable is not the right thing to do.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If you do so then you will get a NOTE like below which is something you should always try to avoid.&lt;/P&gt;
&lt;P&gt;&lt;EM&gt;NOTE: Numeric values have been converted to character values at the places given by: (Line):(Column).&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;And yes, max and min would be the same - question is what's the meaning of such a max and min for numeric variables.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 13 Oct 2015 01:34:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Determining-max-and-min-length-of-variables/m-p/229618#M41567</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2015-10-13T01:34:44Z</dc:date>
    </item>
    <item>
      <title>Re: Determining max and min length of variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Determining-max-and-min-length-of-variables/m-p/229627#M41568</link>
      <description>Thank you, Patrick.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;So I have dropped the idea of length check for numeric, and kept the code only for character.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Now, when I am trying to limit the input variable to character, it is not working properly. As the variables come in from different tables, in case of numeric ones, I get three columns in the output, i.e. max, min and a a blank one in the name of the numeric variable. vtype(var) is not limiting variables to char.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;Code:&lt;BR /&gt;&lt;BR /&gt;data _null_;&lt;BR /&gt;&lt;BR /&gt;set Libref.TableA;&lt;BR /&gt;&lt;BR /&gt; &lt;BR /&gt;&lt;BR /&gt;If vtype(Variable)="C" then do;&lt;BR /&gt;&lt;BR /&gt;   call execute ("proc sql;&lt;BR /&gt;&lt;BR /&gt;                          Create table Max_Min_Length as select Max(length(Variable)) as MxL, Min(length(Variable)) as MnL&lt;BR /&gt;&lt;BR /&gt;                             from Libref.TableA;&lt;BR /&gt;&lt;BR /&gt;                                      quit;");&lt;BR /&gt;&lt;BR /&gt; end;&lt;BR /&gt;&lt;BR /&gt;run;</description>
      <pubDate>Tue, 13 Oct 2015 03:12:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Determining-max-and-min-length-of-variables/m-p/229627#M41568</guid>
      <dc:creator>zoomzoom</dc:creator>
      <dc:date>2015-10-13T03:12:41Z</dc:date>
    </item>
    <item>
      <title>Re: Determining max and min length of variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Determining-max-and-min-length-of-variables/m-p/229629#M41569</link>
      <description>&lt;P&gt;Your code as posted won't return what you're after.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Why can't you use the code version I've posted?&lt;/P&gt;</description>
      <pubDate>Tue, 13 Oct 2015 03:32:47 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Determining-max-and-min-length-of-variables/m-p/229629#M41569</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2015-10-13T03:32:47Z</dc:date>
    </item>
    <item>
      <title>Re: Determining max and min length of variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Determining-max-and-min-length-of-variables/m-p/229642#M41576</link>
      <description>&lt;P&gt;This makes a new dataset with min and max lengths of character variables. You can modify it by adding libname and memname into classvars datasets so then you dont need to "hard code" from-table.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;create table classvars as&lt;BR /&gt;&amp;nbsp; select name ,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; type&lt;BR /&gt;&amp;nbsp; from dictionary.columns&lt;BR /&gt;&amp;nbsp; where LIBNAME = 'SASHELP'&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; and memname = 'CLASS'&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; and type = 'char';&lt;BR /&gt;quit;&lt;BR /&gt;&lt;BR /&gt;data _null_&amp;nbsp; ;&lt;BR /&gt;&amp;nbsp; set classvars end=last;&lt;BR /&gt;&amp;nbsp; if _n_ = 1 then Call execute ('proc sql; create table varlens as select ');&lt;BR /&gt;&amp;nbsp; call execute('Max(length('||name||')) as '||strip(name)||'_max , Min(length('||name||')) as '||strip(name)||'_min' );&lt;BR /&gt;&amp;nbsp; if last then call execute ('from sashelp.class; quit');&lt;BR /&gt;&amp;nbsp; else call execute (',');&lt;BR /&gt;run;&lt;BR /&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 13 Oct 2015 06:06:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Determining-max-and-min-length-of-variables/m-p/229642#M41576</guid>
      <dc:creator>AskoLötjönen</dc:creator>
      <dc:date>2015-10-13T06:06:02Z</dc:date>
    </item>
    <item>
      <title>Re: Determining max and min length of variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Determining-max-and-min-length-of-variables/m-p/229755#M41601</link>
      <description>I am trying to understand how do I restrict input variable to only Character variable, in your code.</description>
      <pubDate>Tue, 13 Oct 2015 17:18:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Determining-max-and-min-length-of-variables/m-p/229755#M41601</guid>
      <dc:creator>zoomzoom</dc:creator>
      <dc:date>2015-10-13T17:18:16Z</dc:date>
    </item>
    <item>
      <title>Re: Determining max and min length of variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Determining-max-and-min-length-of-variables/m-p/229828#M41630</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/40593"&gt;@zoomzoom﻿&lt;/a&gt;&lt;/P&gt;
&lt;P&gt;The code as posted already restricts "itself" to character variables only via the following statement:&lt;/P&gt;
&lt;PRE class=" language-sas"&gt;&lt;CODE class="  language-sas"&gt;&lt;SPAN class="token statement"&gt;array&lt;/SPAN&gt; chars _character_&lt;SPAN class="token punctuation"&gt;;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 14 Oct 2015 02:03:11 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Determining-max-and-min-length-of-variables/m-p/229828#M41630</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2015-10-14T02:03:11Z</dc:date>
    </item>
    <item>
      <title>Re: Determining max and min length of variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Determining-max-and-min-length-of-variables/m-p/229987#M41662</link>
      <description>&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/12447"&gt;@Patrick&lt;/a&gt;&lt;BR /&gt;&lt;BR /&gt;I understand that the code restricts to char. I was not clear in my answer. It seemed that the code will pull all character variables from the source table. In my case, I have multiple tables with one or two character variables from those tables. &lt;BR /&gt;&lt;BR /&gt;I did something else, I am now selecting based on the 'type' from dictionary columns, after I have put in the table names and column names in a temporary table.</description>
      <pubDate>Wed, 14 Oct 2015 23:21:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Determining-max-and-min-length-of-variables/m-p/229987#M41662</guid>
      <dc:creator>zoomzoom</dc:creator>
      <dc:date>2015-10-14T23:21:41Z</dc:date>
    </item>
    <item>
      <title>Re: Determining max and min length of variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Determining-max-and-min-length-of-variables/m-p/229988#M41663</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/40593"&gt;@zoomzoom﻿&lt;/a&gt;&lt;/P&gt;
&lt;P&gt;So pretty much what&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/36190"&gt;@AskoLötjönen﻿&lt;/a&gt;&amp;nbsp;suggested. Sounds like a good solution and one I only didn't suggest because I wasn't sure on which level of SAS coding you are.&lt;/P&gt;</description>
      <pubDate>Wed, 14 Oct 2015 23:31:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Determining-max-and-min-length-of-variables/m-p/229988#M41663</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2015-10-14T23:31:07Z</dc:date>
    </item>
    <item>
      <title>Re: Determining max and min length of variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Determining-max-and-min-length-of-variables/m-p/230003#M41669</link>
      <description>&lt;P&gt;Hi, here's another solution (examines SASHELP.HEART, a heart exam).&amp;nbsp; Since you need a data step to get the variable lengths in ecah observation, use the same data step to determine the MIN and MAX lengths ...&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;proc sql noprint;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;select count(*) into :nc trimmed from sashelp.vcolumn&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;where libname='SASHELP' and memname='HEART' and type='char';&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;quit;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;data minmax (keep=var l_min l_max);&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;array maxx(&amp;amp;nc);&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;array minn(&amp;amp;nc);&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;do until(last);&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;&amp;nbsp; set sashelp.heart end=last;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;&amp;nbsp; array ch(&amp;amp;nc) _character_;&amp;nbsp;&amp;nbsp; &lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;do j=1 to &amp;amp;nc;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;&amp;nbsp; maxx(j) = max(maxx(j),lengthn(ch(j)));&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;&amp;nbsp; minn(j) = min(minn(j),lengthn(ch(j)));&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;end;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;end;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;length var $32;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;do j=1 to &amp;amp;nc;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;&amp;nbsp; var&amp;nbsp;&amp;nbsp; = vname(ch(j));&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;&amp;nbsp; l_min = minn(j);&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;&amp;nbsp; l_max = maxx(j);&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;&amp;nbsp; output;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;end;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;BR /&gt;&lt;FONT face="courier new,courier"&gt;&lt;STRONG&gt;run;&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;FONT face="arial,helvetica,sans-serif"&gt;data set MINMAX ..&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;Obs&amp;nbsp;&amp;nbsp;&amp;nbsp; var&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; l_min&amp;nbsp;&amp;nbsp;&amp;nbsp; l_max&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Status&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; 4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&lt;/FONT&gt;&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DeathCause&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 25&lt;/FONT&gt;&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Sex&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; 4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6&lt;/FONT&gt;&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Chol_Status&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&lt;/FONT&gt;&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BP_Status&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7&lt;/FONT&gt;&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Weight_Status&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 11&lt;/FONT&gt;&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;&lt;FONT face="courier new,courier"&gt;&amp;nbsp;7&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Smoking_Status&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 17&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 15 Oct 2015 12:50:48 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Determining-max-and-min-length-of-variables/m-p/230003#M41669</guid>
      <dc:creator>MikeZdeb</dc:creator>
      <dc:date>2015-10-15T12:50:48Z</dc:date>
    </item>
    <item>
      <title>Re: Determining max and min length of variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Determining-max-and-min-length-of-variables/m-p/230004#M41670</link>
      <description>&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/12447"&gt;@Patrick&lt;/a&gt;,&lt;BR /&gt;&lt;BR /&gt;I am back to programming after a long break, and it feels rusty!!&lt;BR /&gt;&lt;BR /&gt;One thing I still cannot resolve is the note you have mentioned, i.e. "Character values have been converted to numeric values at the places.."</description>
      <pubDate>Thu, 15 Oct 2015 03:07:43 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Determining-max-and-min-length-of-variables/m-p/230004#M41670</guid>
      <dc:creator>zoomzoom</dc:creator>
      <dc:date>2015-10-15T03:07:43Z</dc:date>
    </item>
  </channel>
</rss>

