<?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: Nesteed arrays in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Nesteed-arrays/m-p/163949#M31737</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;As I said, a format is assigned while the data step is being compiled BEFORE execution. You cannot assign a format dynamically, so format xxxx{i} someformat.; cannot work. Keep in mind that i has no value when the data step is compiled.&lt;/P&gt;&lt;P&gt;You can only assign formats to the elements of the array, like&lt;/P&gt;&lt;P&gt;format minimum_distance1-minimum_distance3 someformat.;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 10 Nov 2014 15:38:08 GMT</pubDate>
    <dc:creator>Kurt_Bremser</dc:creator>
    <dc:date>2014-11-10T15:38:08Z</dc:date>
    <item>
      <title>Nesteed arrays</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Nesteed-arrays/m-p/163946#M31734</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;How to combine the below two data step into one? When I run this program, I got the error as &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ERROR: Undeclared array referenced: minimum_distance.&lt;/P&gt;&lt;P&gt;ERROR: Variable minimum_distance has not been declared as an array.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data summary1 (drop=i);&lt;/P&gt;&lt;P&gt;set summary;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If distance1 &amp;gt; 0 or distance2 &amp;gt; 0 or distance3 &amp;gt; 0 or distance4 &amp;gt; 0 or distance5 &amp;gt; 0 or distance6 &amp;gt; 0 or distance7 &amp;gt; 0 or distance8 &amp;gt; 0 or &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; distance9 &amp;gt; 0 or distance10 &amp;gt; 0; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;array minimum_distance{3}; &lt;/P&gt;&lt;P&gt;do i=1 to 3; &lt;/P&gt;&lt;P&gt;minimum_distance{i}=smallest(i,distance1,distance2,distance3,distance4,distance5,distance6,distance7,distance8,distance9,distance10); &lt;/P&gt;&lt;P&gt;end; &lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data summary2 (drop=i);&lt;/P&gt;&lt;P&gt;set summary1;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;array nearest_distance{3}; &lt;/P&gt;&lt;P&gt;do i=1 to 3; &lt;/P&gt;&lt;P&gt;nearest_distance{i}=whichn(minimum_distance{i},distance1-distance10); &lt;/P&gt;&lt;P&gt; new_nearest_distance{i}=put(nearest_distance{i} Nearest_branch.); &lt;/P&gt;&lt;P&gt;end; &lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Also can we use a format statement within do loop?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 10 Nov 2014 14:56:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Nesteed-arrays/m-p/163946#M31734</guid>
      <dc:creator>Babloo</dc:creator>
      <dc:date>2014-11-10T14:56:25Z</dc:date>
    </item>
    <item>
      <title>Re: Nesteed arrays</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Nesteed-arrays/m-p/163947#M31735</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;a) a format statement is valid for the whole data step and is "executed" (actually, the attributes are set before data step logic starts) along with length or label statements before everything else.&lt;/P&gt;&lt;P&gt;b) an array is a temporary construct internal to the data step that is not written to a data set. Therefore you cannot find it in the second data step. if you want to preserver its values, you need to supply it with non-temporary variable names:&lt;/P&gt;&lt;P&gt;array minimum_distance{3} minimum_distance1-minimum_distance3;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Repeat that array statement in the second data step to reassign the array.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 10 Nov 2014 15:02:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Nesteed-arrays/m-p/163947#M31735</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2014-11-10T15:02:58Z</dc:date>
    </item>
    <item>
      <title>Re: Nesteed arrays</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Nesteed-arrays/m-p/163948#M31736</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;a.I got error as follows when I used a format statement in the do loop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;18&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; array nearest_distance{3};&lt;/P&gt;&lt;P&gt;19&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; array minimum_distance{3};&lt;/P&gt;&lt;P&gt;20&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *array new_nearest_distance{3};&lt;/P&gt;&lt;P&gt;21&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do i=1 to 3;&lt;/P&gt;&lt;P&gt;22&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; nearest_distance{i}=whichn(minimum_distance{i},distance1,distance2,distance3,distance4,distance5,distance6,distance7,distance8,distance9,distance10);&lt;/P&gt;&lt;P&gt;23&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; format nearest_distance{i} Nearest_branch.;&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; _&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; 85&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; 76&lt;/P&gt;&lt;P&gt;ERROR 85-322: Expecting a format name.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ERROR 76-322: Syntax error, statement will be ignored.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My user defined format is,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc format; &lt;/P&gt;&lt;P&gt;value Nearest_branch &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1='Carrollton' &lt;/P&gt;&lt;P&gt;2='Cedar_Hill' &lt;/P&gt;&lt;P&gt;3='Garland' &lt;/P&gt;&lt;P&gt;4='Houston_Jones' &lt;/P&gt;&lt;P&gt;5='Houston_Oak' &lt;/P&gt;&lt;P&gt;6='Irving' &lt;/P&gt;&lt;P&gt;7='Mesquite' &lt;/P&gt;&lt;P&gt;8='One_Arts_Plaza' &lt;/P&gt;&lt;P&gt;9='R1_Tower' &lt;/P&gt;&lt;P&gt;10='Southside'; &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;b.please suggest me the following in arrays as well as i'm not sure to accomplish it with 'geodist' function.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;distance1=geodist(N_LAT1,N_LONG1,LAT1,LONG1,'m'); &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;distance2=geodist(N_LAT1,N_LONG1,LAT2,LONG2,'m'); &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;distance3=geodist(N_LAT1,N_LONG1,LAT3,LONG3,'m'); &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;distance4=geodist(N_LAT1,N_LONG1,LAT4,LONG4,'m'); &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;distance5=geodist(N_LAT1,N_LONG1,LAT5,LONG5,'m'); &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;distance6=geodist(N_LAT1,N_LONG1,LAT6,LONG6,'m'); &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;distance7=geodist(N_LAT1,N_LONG1,LAT7,LONG7,'m'); &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;distance8=geodist(N_LAT1,N_LONG1,LAT8,LONG8,'m'); &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;distance9=geodist(N_LAT1,N_LONG1,LAT9,LONG9,'m'); &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;distance10=geodist(N_LAT1,N_LONG1,LAT10,LONG10,'m'); &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 10 Nov 2014 15:22:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Nesteed-arrays/m-p/163948#M31736</guid>
      <dc:creator>Babloo</dc:creator>
      <dc:date>2014-11-10T15:22:08Z</dc:date>
    </item>
    <item>
      <title>Re: Nesteed arrays</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Nesteed-arrays/m-p/163949#M31737</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;As I said, a format is assigned while the data step is being compiled BEFORE execution. You cannot assign a format dynamically, so format xxxx{i} someformat.; cannot work. Keep in mind that i has no value when the data step is compiled.&lt;/P&gt;&lt;P&gt;You can only assign formats to the elements of the array, like&lt;/P&gt;&lt;P&gt;format minimum_distance1-minimum_distance3 someformat.;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 10 Nov 2014 15:38:08 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Nesteed-arrays/m-p/163949#M31737</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2014-11-10T15:38:08Z</dc:date>
    </item>
    <item>
      <title>Re: Nesteed arrays</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Nesteed-arrays/m-p/163950#M31738</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;For the format statement you can reference the variable name, e.g. an array is just the number after the array name.&amp;nbsp; So temp{4} is temp1 temp2 temp3 temp4.&amp;nbsp; Do the format statement outside the loop:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; format temp1-temp4 best.;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For your second point replace the number with the array and loop:&lt;/P&gt;&lt;P&gt;data want;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; set have;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; array distance{10};&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; array lat{10};&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; array long{10};&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do I=1 to 10;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; distance{I}=geodist(N_LAT1,N_LONG1,LAT{I},LONG{I},'m'); &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;run;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 10 Nov 2014 15:42:57 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Nesteed-arrays/m-p/163950#M31738</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2014-11-10T15:42:57Z</dc:date>
    </item>
  </channel>
</rss>

