<?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: Array in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Array/m-p/237646#M43566</link>
    <description>&lt;P&gt;It's not clear that arrays are the best tool for the job, but it can be done:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;array letters {29}&amp;nbsp;$ 1&amp;nbsp;_temporary_ ('A' 'B' 'C' 'D' 'E' 'F' 'G' 'H' 'I' 'J' 'K' ' ' 'L' 'M' 'N' 'O' 'P' 'Q' 'R' 'S' 'T' 'U' 'V' ' ' 'W' 'X' ' ' 'Y' 'Z');&lt;/P&gt;
&lt;P&gt;index = int( (whichc(substr(id,1,1), of letters{*}) + 2) / 3);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;It's untested, so it may need a tiny bit of tweaking.&lt;/P&gt;</description>
    <pubDate>Thu, 03 Dec 2015 18:05:09 GMT</pubDate>
    <dc:creator>Astounding</dc:creator>
    <dc:date>2015-12-03T18:05:09Z</dc:date>
    <item>
      <title>Array</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Array/m-p/237620#M43559</link>
      <description>&lt;P&gt;Let's say&amp;nbsp;a company will give some coupons to their member,&lt;/P&gt;&lt;P&gt;the member ID is shown as follows.&lt;/P&gt;&lt;P&gt;there are 10 levels of membership,&lt;/P&gt;&lt;P&gt;For ID starting with A,B,C, the index is 1&lt;/P&gt;&lt;P&gt;E,F,G, the index is 2.&lt;/P&gt;&lt;P&gt;The numbers of coupon the member can get = 2 X index&lt;/P&gt;&lt;P&gt;.....&lt;/P&gt;&lt;P&gt;.....&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;A123&lt;/P&gt;&lt;P&gt;A124&lt;/P&gt;&lt;P&gt;B135&lt;/P&gt;&lt;P&gt;C134&lt;/P&gt;&lt;P&gt;D134&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;Letter &amp;nbsp; &amp;nbsp; Index&lt;/P&gt;&lt;P&gt;A,B,C &amp;nbsp; &amp;nbsp; 1&lt;/P&gt;&lt;P&gt;D,E,F &amp;nbsp; &amp;nbsp; &amp;nbsp;2&lt;/P&gt;&lt;P&gt;G,H,I &amp;nbsp; &amp;nbsp; &amp;nbsp;3&lt;/P&gt;&lt;P&gt;J,K &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 4&lt;/P&gt;&lt;P&gt;L,M,N &amp;nbsp; &amp;nbsp;5&lt;/P&gt;&lt;P&gt;O,P,Q &amp;nbsp; &amp;nbsp;6&lt;/P&gt;&lt;P&gt;R,S,T &amp;nbsp; &amp;nbsp; 7&lt;/P&gt;&lt;P&gt;U,V &amp;nbsp; &amp;nbsp; &amp;nbsp; 8&lt;/P&gt;&lt;P&gt;W,X &amp;nbsp; &amp;nbsp; &amp;nbsp;9&lt;/P&gt;&lt;P&gt;Y,Z &amp;nbsp; &amp;nbsp; &amp;nbsp; 10&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;How can i use SAS array to do above question?&lt;/P&gt;&lt;P&gt;Array index[ ]&lt;/P&gt;&lt;P&gt;Thank you so much.&lt;/P&gt;</description>
      <pubDate>Thu, 03 Dec 2015 16:42:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Array/m-p/237620#M43559</guid>
      <dc:creator>forsignupar</dc:creator>
      <dc:date>2015-12-03T16:42:02Z</dc:date>
    </item>
    <item>
      <title>Re: Array</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Array/m-p/237622#M43561</link>
      <description>&lt;P&gt;I think a simple format for index will work in your case.&lt;/P&gt;</description>
      <pubDate>Thu, 03 Dec 2015 16:49:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Array/m-p/237622#M43561</guid>
      <dc:creator>ndp</dc:creator>
      <dc:date>2015-12-03T16:49:17Z</dc:date>
    </item>
    <item>
      <title>Re: Array</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Array/m-p/237643#M43564</link>
      <description>&lt;P&gt;I would agree with &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/26546"&gt;@ndp﻿&lt;/a&gt;.&amp;nbsp; Using the format procedure will do what I believe you are looking for.&amp;nbsp; Here's some test code for you:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input MemberID$;
datalines;
A123
B135
C134
D134
E134
F134
G134
H134
I134
J134
K134
L134
M134
N134
O134
P134
Q134
R134
S134
T134
U134
V134
W134
X134
Y134
Z134
;
run;

proc format;
	value $ Ind 'A'=1 'B'=1 'C'=1
			    'D'=2 'E'=2 'F'=2
			    'G'=3 'H'=3 'I'=3
			    'J'=4 'K'=4
			    'L'=5 'M'=5 'N'=5
			    'O'=6 'P'=6 'Q'=6
			    'R'=7 'S'=7 'T'=7
			    'U'=8 'V'=8
			    'W'=9 'X'=9
			    'Y'=10 'Z'=10;
run;

data want;
set have;
Letter=substr(MemberID,1,1);
Index=put(Letter,Ind.);
Num_Coupon=put(Index,3.)*2;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 03 Dec 2015 18:01:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Array/m-p/237643#M43564</guid>
      <dc:creator>dcruik</dc:creator>
      <dc:date>2015-12-03T18:01:20Z</dc:date>
    </item>
    <item>
      <title>Re: Array</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Array/m-p/237646#M43566</link>
      <description>&lt;P&gt;It's not clear that arrays are the best tool for the job, but it can be done:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;array letters {29}&amp;nbsp;$ 1&amp;nbsp;_temporary_ ('A' 'B' 'C' 'D' 'E' 'F' 'G' 'H' 'I' 'J' 'K' ' ' 'L' 'M' 'N' 'O' 'P' 'Q' 'R' 'S' 'T' 'U' 'V' ' ' 'W' 'X' ' ' 'Y' 'Z');&lt;/P&gt;
&lt;P&gt;index = int( (whichc(substr(id,1,1), of letters{*}) + 2) / 3);&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;It's untested, so it may need a tiny bit of tweaking.&lt;/P&gt;</description>
      <pubDate>Thu, 03 Dec 2015 18:05:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Array/m-p/237646#M43566</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2015-12-03T18:05:09Z</dc:date>
    </item>
    <item>
      <title>Re: Array</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Array/m-p/237651#M43567</link>
      <description>&lt;P&gt;Here is a solution but it doesn't use array:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;proc format;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;invalue level&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'A'-'C' = 1&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 'D'-'F' = 2&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; 'G'-'I' = 3&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; 'J'-'K' = 4&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; 'L'-'N' = 5&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; 'O'-'Q' = 6&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; 'R'-'T' = 7&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; 'U'-'V' = 8&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; 'W'-'X' = 9&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; 'Y'-'Z' = 10&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; ;&lt;BR /&gt;&lt;BR /&gt;data have;&lt;BR /&gt;input Mem_Num$;&lt;BR /&gt;level = substr(mem_num,1,1);&lt;BR /&gt;cards;&lt;BR /&gt;A123&lt;BR /&gt;A124&lt;BR /&gt;B135&lt;BR /&gt;C134&lt;BR /&gt;D134&lt;BR /&gt;;&lt;BR /&gt;&lt;BR /&gt;data want;&lt;BR /&gt;set have;&lt;BR /&gt;display_level = input(level,level.);&lt;BR /&gt;coupon = input(level,level.) * 2;&lt;BR /&gt;run;&lt;/P&gt;</description>
      <pubDate>Thu, 03 Dec 2015 18:14:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Array/m-p/237651#M43567</guid>
      <dc:creator>Steelers_In_DC</dc:creator>
      <dc:date>2015-12-03T18:14:42Z</dc:date>
    </item>
    <item>
      <title>Re: Array</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Array/m-p/237663#M43568</link>
      <description>&lt;P&gt;Below&amp;nbsp;is a relatively straightforward solution:&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;DATA have;
  LENGTH member_id $8;
  INPUT member_id $;
  DATALINES;
A123
A124
B135
C134
D134
E333
®888
¥999
;
RUN;


DATA want;
  SET have;
  letter = SUBSTR(member_id, 1, 1);
  SELECT;
    WHEN (letter IN ('A','B','C')) index = 1;
    WHEN (letter IN ('D','E','F')) index = 2;
    WHEN (letter IN ('G','H','I')) index = 3;
    WHEN (letter IN ('J','K'))     index = 4;
    WHEN (letter IN ('L','M','N')) index = 5;
    WHEN (letter IN ('O','P','Q')) index = 6;
    WHEN (letter IN ('R','S','T')) index = 7;
    WHEN (letter IN ('U','V'))     index = 8;
    WHEN (letter IN ('W','X'))     index = 9;
    WHEN (letter IN ('Y','Z'))     index = 10;
    OTHERWISE DO;
      PUT "WARNING: Bad character in letter - " letter;
    END;
  END;
RUN;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 03 Dec 2015 18:36:29 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Array/m-p/237663#M43568</guid>
      <dc:creator>hbi</dc:creator>
      <dc:date>2015-12-03T18:36:29Z</dc:date>
    </item>
  </channel>
</rss>

