<?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 PreLoadFmt and Nested Value Formats. in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/PreLoadFmt-and-Nested-Value-Formats/m-p/47824#M12876</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I can undstand that PROC SUMMARY cannot preload a nested format, as the nested format may not have a finite number of levels.&amp;nbsp; eg.&amp;nbsp; Other=[F8.2].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Often I have a nested format in a value label format that is another value label format.&amp;nbsp; (don't ask just go with it)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Has anyone thought up an easy way to un-nest this into a new format.&amp;nbsp; Using CNTLOUT you can ID the nested levels HLO=F and LABEL=the format name in square brackets.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 07 Feb 2012 15:06:18 GMT</pubDate>
    <dc:creator>data_null__</dc:creator>
    <dc:date>2012-02-07T15:06:18Z</dc:date>
    <item>
      <title>PreLoadFmt and Nested Value Formats.</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/PreLoadFmt-and-Nested-Value-Formats/m-p/47824#M12876</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I can undstand that PROC SUMMARY cannot preload a nested format, as the nested format may not have a finite number of levels.&amp;nbsp; eg.&amp;nbsp; Other=[F8.2].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Often I have a nested format in a value label format that is another value label format.&amp;nbsp; (don't ask just go with it)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Has anyone thought up an easy way to un-nest this into a new format.&amp;nbsp; Using CNTLOUT you can ID the nested levels HLO=F and LABEL=the format name in square brackets.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 07 Feb 2012 15:06:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/PreLoadFmt-and-Nested-Value-Formats/m-p/47824#M12876</guid>
      <dc:creator>data_null__</dc:creator>
      <dc:date>2012-02-07T15:06:18Z</dc:date>
    </item>
    <item>
      <title>PreLoadFmt and Nested Value Formats.</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/PreLoadFmt-and-Nested-Value-Formats/m-p/47825#M12877</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I'm not sure you can do that, but there may be a workaround.&amp;nbsp; It might help to know a little more about how you are using the format.&amp;nbsp; For example, if it is with a CLASS variable you might be able to apply the format ahead of time:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data temp / view=temp;&lt;/P&gt;&lt;P&gt;set my_original_data;&lt;/P&gt;&lt;P&gt;new_var = put(old_var, my_nested_format.);&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc summary data=temp;&lt;/P&gt;&lt;P&gt;class new_var;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This would change the order of the output categories.&amp;nbsp; But it's not clear if that is an issue or not (and there might be another workaround for that using ID variables).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Good luck. &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 07 Feb 2012 15:37:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/PreLoadFmt-and-Nested-Value-Formats/m-p/47825#M12877</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2012-02-07T15:37:13Z</dc:date>
    </item>
    <item>
      <title>PreLoadFmt and Nested Value Formats.</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/PreLoadFmt-and-Nested-Value-Formats/m-p/47826#M12878</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Yes I want to PRELOADFMT the nested format.&amp;nbsp; But that is not allowed.&amp;nbsp; Your example tosses the whole preloadfmt bit.&amp;nbsp; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 07 Feb 2012 15:52:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/PreLoadFmt-and-Nested-Value-Formats/m-p/47826#M12878</guid>
      <dc:creator>data_null__</dc:creator>
      <dc:date>2012-02-07T15:52:53Z</dc:date>
    </item>
    <item>
      <title>PreLoadFmt and Nested Value Formats.</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/PreLoadFmt-and-Nested-Value-Formats/m-p/47827#M12879</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Guilty as charged.&amp;nbsp; I was hoping for an easy solution.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If your formats define values only (not ranges), it shouldn't be too difficult to combine them into a single format.&amp;nbsp; (If either one contains ranges, this becomes a nasty problem.)&amp;nbsp; Create a CNTLOUT data set for each format, and eliminate any reference to the nested format in the "outer" CNTLOUT data set.&amp;nbsp; Then merge the two CNTLOUT data sets BY START.&amp;nbsp; If the nested format was the OTHER= definition for the "outer" format, take the outer format's LABEL when there is a match.&amp;nbsp; Use the result as a CNTLIN= data set.&amp;nbsp; That gives you a single format you can preload.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Does this sound about right?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 07 Feb 2012 16:03:59 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/PreLoadFmt-and-Nested-Value-Formats/m-p/47827#M12879</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2012-02-07T16:03:59Z</dc:date>
    </item>
    <item>
      <title>PreLoadFmt and Nested Value Formats.</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/PreLoadFmt-and-Nested-Value-Formats/m-p/47828#M12880</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Is this a reasonable assumption of your example problem?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc format;&lt;/P&gt;&lt;P&gt; value mage&lt;/P&gt;&lt;P&gt;&amp;nbsp; 0 - 2 = 'Infant'&lt;/P&gt;&lt;P&gt;&amp;nbsp; 3 - 4 = 'Toddler'&lt;/P&gt;&lt;P&gt;&amp;nbsp; 5 - 10 = 'Young Child'&lt;/P&gt;&lt;P&gt;&amp;nbsp; 11 - 15 = 'Tween'&lt;/P&gt;&lt;P&gt;&amp;nbsp; 16 - 19 = 'Teenager'&lt;/P&gt;&lt;P&gt;&amp;nbsp; other = 'Non Minor'&lt;/P&gt;&lt;P&gt; ;&lt;/P&gt;&lt;P&gt; value mlfage (multilabel)&lt;/P&gt;&lt;P&gt;&amp;nbsp; 0 - 17 = 'Minor'&lt;/P&gt;&lt;P&gt;&amp;nbsp; 0 - 19 = [mage]&lt;/P&gt;&lt;P&gt;&amp;nbsp; 10 - 19 = 'Denarian'&lt;/P&gt;&lt;P&gt;&amp;nbsp; 18 - 29 = 'Young Adult'&lt;/P&gt;&lt;P&gt;&amp;nbsp; 20 - 29 = 'Vicenarian'&lt;/P&gt;&lt;P&gt;&amp;nbsp; 30 - 39 = 'Tricenarian'&lt;/P&gt;&lt;P&gt;&amp;nbsp; 30 - 49 = 'Adult'&lt;/P&gt;&lt;P&gt;&amp;nbsp; 50 - 59 = 'Quadragenarian'&lt;/P&gt;&lt;P&gt;&amp;nbsp; 50 - 64 = 'Middle-Aged Adults'&lt;/P&gt;&lt;P&gt;&amp;nbsp; 60 - 69 = 'Sexagenarian'&lt;/P&gt;&lt;P&gt;&amp;nbsp; 65 - high = 'Senior'&lt;/P&gt;&lt;P&gt;&amp;nbsp; 70 - 79 = 'Septuagenarian'&lt;/P&gt;&lt;P&gt;&amp;nbsp; 80 - 89 = 'Octogenarian'&lt;/P&gt;&lt;P&gt;&amp;nbsp; 90 - 99 = 'Nonagenarian'&lt;/P&gt;&lt;P&gt;&amp;nbsp; other = '***ERROR***'&lt;/P&gt;&lt;P&gt; ;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt; create view class as select sex,height,weight,case(rand('TABLE',.33,.33,.33)) when 1 then age*2 when 2 then age when 3 then age/2 end as age from sashelp.class order by sex;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc summary data=class print n mean max min range std nonobs nway fw=8;&lt;/P&gt;&lt;P&gt; by sex;&lt;/P&gt;&lt;P&gt; var height weight;&lt;/P&gt;&lt;P&gt; class age /mlf order=data;&lt;/P&gt;&lt;P&gt; format age mlfage.;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Preloadfmt I do not think is necessary for proc summary when using multilabel formats, use mlf option instead, unlike with proc report.&amp;nbsp; This produces the expected results above.&amp;nbsp; This however will not work if the nested format is also multilabel.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 07 Feb 2012 17:18:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/PreLoadFmt-and-Nested-Value-Formats/m-p/47828#M12880</guid>
      <dc:creator>FriedEgg</dc:creator>
      <dc:date>2012-02-07T17:18:49Z</dc:date>
    </item>
    <item>
      <title>PreLoadFmt and Nested Value Formats.</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/PreLoadFmt-and-Nested-Value-Formats/m-p/47829#M12881</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The discussion seems to have died out a bit here.&amp;nbsp; Here's a set of assumptions, plus the program format that you can work with.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The assumptions are at least within the realm of reason:&lt;/P&gt;&lt;P&gt;&amp;nbsp; - The "outer" format defines values only, not ranges.&lt;/P&gt;&lt;P&gt;&amp;nbsp; - The "outer" format uses the "inner" format for its OTHER= definition.&lt;/P&gt;&lt;P&gt;&amp;nbsp; - The "inner" format defines values only, not ranges, except that it can define an OTHER= category.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I know those are restrictive, and may not fit what you need to do.&amp;nbsp; But if the assumptions are valid, the code is pretty straightforward.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc format on the "outer" format, CNTLOUT=outer (where=(HLO ne 'O'));&lt;/P&gt;&lt;P&gt;proc format on the "inner" format, CNTLOUT=inner;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If necessary (I forget the order of CNTLOUT= data sets):&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sort data=outer; by start; run;&lt;/P&gt;&lt;P&gt;proc sort data=inner; by start; run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data combine;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; set inner outer;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; by start;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; if last.start;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; fmtname='Combined';&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc format cntlin=combine;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My recollection is that if you use a multilabel format, you get different results.&amp;nbsp; The same observation can be counted twice, and contribute to the count of two separate cells of your report.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Good luck.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 08 Feb 2012 14:33:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/PreLoadFmt-and-Nested-Value-Formats/m-p/47829#M12881</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2012-02-08T14:33:19Z</dc:date>
    </item>
    <item>
      <title>PreLoadFmt and Nested Value Formats.</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/PreLoadFmt-and-Nested-Value-Formats/m-p/47830#M12882</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;PRE __jive_macro_name="quote" class="jive_text_macro jive_macro_quote"&gt;&lt;P&gt;Astounding wrote:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My recollection is that if you use a multilabel format, you get different results.&amp;nbsp; The same observation can be counted twice, and contribute to the count of two separate cells of your report.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Yes, that is the intentional purpose for it's use.&amp;nbsp; Judging by what you said in you explanation of the problem however it is a differnt question than the one I answered...&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 08 Feb 2012 17:39:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/PreLoadFmt-and-Nested-Value-Formats/m-p/47830#M12882</guid>
      <dc:creator>FriedEgg</dc:creator>
      <dc:date>2012-02-08T17:39:30Z</dc:date>
    </item>
    <item>
      <title>PreLoadFmt and Nested Value Formats.</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/PreLoadFmt-and-Nested-Value-Formats/m-p/47831#M12883</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Sounds like you need to build up the list of values by traversing the tree defined by the nested structure of your formats.&amp;nbsp; I have done this with macro loops of SQL queries for both path analysis of social contacts for criminology research and program dependencies for system development.&amp;nbsp; I also had some success using the NETDRAW procedure from SAS/OR to do the analysis.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 08 Feb 2012 18:23:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/PreLoadFmt-and-Nested-Value-Formats/m-p/47831#M12883</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2012-02-08T18:23:01Z</dc:date>
    </item>
    <item>
      <title>PreLoadFmt and Nested Value Formats.</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/PreLoadFmt-and-Nested-Value-Formats/m-p/47832#M12884</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;There's definitely a question or two about what needs to be solved.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If this is a one-time effort that has to process ranges, and should not use multilabel formats, and can stand to have human intervention applied, here's a pragmatic approach.&amp;nbsp; Combine the two CNTLOUT= data sets, but eliminate from the INNER definition just the records that identify exactly the same range (match on BOTH START and END).&amp;nbsp; Then try to use the result as a CNTLIN= data set and let SAS give you an error message for the ranges that overlap.&amp;nbsp; Modify the CNTLIN= data set to eliminate the overlap and try again.&amp;nbsp; Repeat until the errors stop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here's an example of a difficult situation when ranges come into play.&amp;nbsp; The outer format definition includes:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;15 - 25 = 'Small'&lt;/P&gt;&lt;P&gt;28 - 32 = 'Medium'&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;And the inner format definition includes:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;20 - 30 = 'Young'&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So the inner range has to change to the equivalent of:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;25 &amp;lt;- &amp;lt; 28 = 'Young'&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There's no easy, automated solution that I see.&amp;nbsp; Tip of the hat to anyone who can do it.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 08 Feb 2012 18:42:24 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/PreLoadFmt-and-Nested-Value-Formats/m-p/47832#M12884</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2012-02-08T18:42:24Z</dc:date>
    </item>
    <item>
      <title>Re: PreLoadFmt and Nested Value Formats.</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/PreLoadFmt-and-Nested-Value-Formats/m-p/47833#M12885</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Not sure I understand your point the only time the inner for is called is when the range of the outter includes =[inner.].&amp;nbsp; Like I said I probably don't undrestand.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 08 Feb 2012 18:57:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/PreLoadFmt-and-Nested-Value-Formats/m-p/47833#M12885</guid>
      <dc:creator>data_null__</dc:creator>
      <dc:date>2012-02-08T18:57:42Z</dc:date>
    </item>
    <item>
      <title>Re: PreLoadFmt and Nested Value Formats.</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/PreLoadFmt-and-Nested-Value-Formats/m-p/47834#M12886</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;PRE __jive_macro_name="quote" class="jive_text_macro jive_macro_quote"&gt;&lt;P&gt;Astounding wrote:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The discussion seems to have died out a bit here.&amp;nbsp; Here's a set of assumptions, plus the program format that you can work with.&lt;/P&gt;&lt;BR /&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Yes sorry,&amp;nbsp; I've enjoyed the discussion and there are some good ideas.&amp;nbsp; The problem may be to difficult for the value it returns.&amp;nbsp; I was thinking of the simplest case where both inner and outer are simple one to one value labels.&amp;nbsp;&amp;nbsp; I may return to this at a later time.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 08 Feb 2012 19:03:33 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/PreLoadFmt-and-Nested-Value-Formats/m-p/47834#M12886</guid>
      <dc:creator>data_null__</dc:creator>
      <dc:date>2012-02-08T19:03:33Z</dc:date>
    </item>
    <item>
      <title>Re: PreLoadFmt and Nested Value Formats.</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/PreLoadFmt-and-Nested-Value-Formats/m-p/47835#M12887</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Sorry, I can make that clearer.&amp;nbsp; Here's a more complete example:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc format;&lt;/P&gt;&lt;P&gt;value outer 15 - 25 = 'Small'&amp;nbsp;&amp;nbsp;&amp;nbsp; 28 - 32 = 'Medium'&amp;nbsp; Other = [inner.};&lt;/P&gt;&lt;P&gt;value inner 20 - 30 = 'Young';&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now a few sample mappings would be:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;25 = Small&lt;/P&gt;&lt;P&gt;29 = Medium&lt;/P&gt;&lt;P&gt;27 = Young&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The full inner range of 20 - 30 cannot be used.&amp;nbsp; Because inner is the OTHER= definition for outer, it should only be applied to values that outer has not defined.&amp;nbsp; In this case, that would limit the application of inner to values greater than 25 and less than 28.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 08 Feb 2012 19:16:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/PreLoadFmt-and-Nested-Value-Formats/m-p/47835#M12887</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2012-02-08T19:16:56Z</dc:date>
    </item>
    <item>
      <title>Re: PreLoadFmt and Nested Value Formats.</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/PreLoadFmt-and-Nested-Value-Formats/m-p/47836#M12888</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Data _null_ - &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; Here a really simple example of pulling two nested formats and merging into one.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I have manually assigned the ORDER variable in this case.&amp;nbsp; That is where graph analysis would allow automation and circular reference detection.&lt;/P&gt;&lt;P&gt;- Tom&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc format ;&lt;/P&gt;&lt;P&gt;&amp;nbsp; value outer 1='One(outer)' 3='Three(outer)' other=[inner.];&lt;/P&gt;&lt;P&gt;&amp;nbsp; value inner 1='One(inner)' 2='Two(inner)' ;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;proc format noprint lib=work cntlout=test1;&lt;/P&gt;&lt;P&gt; select inner outer;&lt;/P&gt;&lt;P&gt; run;&lt;/P&gt;&lt;P&gt;data test2;&lt;/P&gt;&lt;P&gt;&amp;nbsp; set test1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if fmtname='OUTER' then order=2;&lt;/P&gt;&lt;P&gt;&amp;nbsp; else order=1;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if hlo='OF' then delete;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;proc sort ;&lt;/P&gt;&lt;P&gt;&amp;nbsp; by start end order;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;data test3;&lt;/P&gt;&lt;P&gt;&amp;nbsp; update test2 (obs=0) test2(keep=fmtname start end label);&lt;/P&gt;&lt;P&gt;&amp;nbsp; by start end;&lt;/P&gt;&lt;P&gt;&amp;nbsp; fmtname='NEW';&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;proc format cntlin=test3 lib=work; run;&lt;/P&gt;&lt;P&gt;proc format lib=work fmtlib;&lt;/P&gt;&lt;P&gt;&amp;nbsp; select inner outer new;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_text_macro jive_macro_code"&gt;&lt;P&gt;----------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FORMAT NAME: INNER&amp;nbsp;&amp;nbsp;&amp;nbsp; LENGTH:&amp;nbsp;&amp;nbsp; 10&amp;nbsp;&amp;nbsp; NUMBER OF VALUES:&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;/P&gt;&lt;P&gt;|&amp;nbsp;&amp;nbsp; MIN LENGTH:&amp;nbsp;&amp;nbsp; 1&amp;nbsp; MAX LENGTH:&amp;nbsp; 40&amp;nbsp; DEFAULT LENGTH&amp;nbsp; 10&amp;nbsp; FUZZ: STD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;/P&gt;&lt;P&gt;|--------------------------------------------------------------------------|&lt;/P&gt;&lt;P&gt;|START&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |END&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |LABEL&amp;nbsp; (VER. 8.2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 08FEB2012:14:18:17)|&lt;/P&gt;&lt;P&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; 1|&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; 1|One(inner)&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; |&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; 2|&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; 2|Two(inner)&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; |&lt;/P&gt;&lt;P&gt;----------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;----------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FORMAT NAME: NEW&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LENGTH:&amp;nbsp;&amp;nbsp; 12&amp;nbsp;&amp;nbsp; NUMBER OF VALUES:&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;/P&gt;&lt;P&gt;|&amp;nbsp;&amp;nbsp; MIN LENGTH:&amp;nbsp;&amp;nbsp; 1&amp;nbsp; MAX LENGTH:&amp;nbsp; 40&amp;nbsp; DEFAULT LENGTH&amp;nbsp; 12&amp;nbsp; FUZZ: STD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;/P&gt;&lt;P&gt;|--------------------------------------------------------------------------|&lt;/P&gt;&lt;P&gt;|START&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |END&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |LABEL&amp;nbsp; (VER. 8.2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 08FEB2012:14:18:17)|&lt;/P&gt;&lt;P&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; 1|&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; 1|One(outer)&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; |&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; 2|&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; 2|Two(inner)&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; |&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; 3|&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; 3|Three(outer)&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; |&lt;/P&gt;&lt;P&gt;----------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;----------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FORMAT NAME: OUTER&amp;nbsp;&amp;nbsp;&amp;nbsp; LENGTH:&amp;nbsp;&amp;nbsp; 40&amp;nbsp;&amp;nbsp; NUMBER OF VALUES:&amp;nbsp;&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;/P&gt;&lt;P&gt;|&amp;nbsp;&amp;nbsp; MIN LENGTH:&amp;nbsp;&amp;nbsp; 1&amp;nbsp; MAX LENGTH:&amp;nbsp; 40&amp;nbsp; DEFAULT LENGTH&amp;nbsp; 40&amp;nbsp; FUZZ: STD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |&lt;/P&gt;&lt;P&gt;|--------------------------------------------------------------------------|&lt;/P&gt;&lt;P&gt;|START&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |END&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |LABEL&amp;nbsp; (VER. 8.2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 08FEB2012:14:18:17)|&lt;/P&gt;&lt;P&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; 1|&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; 1|One(outer)&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; |&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; 3|&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; 3|Three(outer)&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; |&lt;/P&gt;&lt;P&gt;|**OTHER**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |**OTHER**&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |[INNER40.]&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; |&lt;/P&gt;&lt;P&gt;----------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 08 Feb 2012 19:19:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/PreLoadFmt-and-Nested-Value-Formats/m-p/47836#M12888</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2012-02-08T19:19:17Z</dc:date>
    </item>
  </channel>
</rss>

