<?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: Using arrays in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Using-arrays/m-p/347201#M273290</link>
    <description>&lt;P&gt;Simple example:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
    do id = 1 to 3;
        do item_code = 'A', 'B', 'C';
        output;
        end;
    end;
run;

proc transpose data = have out = want prefix = code;
    by id;
    var item_code;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Tue, 04 Apr 2017 22:40:19 GMT</pubDate>
    <dc:creator>collinelliot</dc:creator>
    <dc:date>2017-04-04T22:40:19Z</dc:date>
    <item>
      <title>Using arrays</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Using-arrays/m-p/347198#M273288</link>
      <description>&lt;P&gt;I am reading in data to create X dataset. &amp;nbsp;The raw data comes as a seperate observation/line for each ItemCode. &amp;nbsp;I am wanting to combine the IDs into one Observation and have multiple ItemCodes strung out horizontally instread of verticle. &amp;nbsp;I have tried a proc transpose but that does not combine IDs into one observation.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;proc sort data=Raw nodup;&lt;BR /&gt;by ID ItemCode;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;data Raw;&lt;BR /&gt;set Raw;&lt;BR /&gt;counter=_N_;&lt;BR /&gt;_N_=1;&lt;BR /&gt;run;&lt;/P&gt;&lt;P&gt;PROC SORT DATA=Raw;&lt;BR /&gt;BY ID ItemCode;&lt;BR /&gt;RUN;&lt;BR /&gt;DATA NewRaw1;&lt;BR /&gt;ARRAY ??? (Unknown number of observations)&lt;BR /&gt;RETAIN ?&lt;BR /&gt;BY ID;&lt;BR /&gt;IF FIRST.ID THEN&lt;BR /&gt;DO I = 1 TO 1;&lt;BR /&gt;DO J = 1 TO 2;&lt;BR /&gt;CS[I,J] = .;&lt;BR /&gt;END;&lt;BR /&gt;END;&lt;BR /&gt;CS[ID, ItemCode] = ResponseCode;&lt;BR /&gt;IF LAST.ID THEN OUTPUT;&lt;BR /&gt;KEEP ID CS1-CS;&lt;BR /&gt;RUN;&lt;/P&gt;</description>
      <pubDate>Tue, 04 Apr 2017 22:31:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Using-arrays/m-p/347198#M273288</guid>
      <dc:creator>overky</dc:creator>
      <dc:date>2017-04-04T22:31:20Z</dc:date>
    </item>
    <item>
      <title>Re: Using arrays</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Using-arrays/m-p/347200#M273289</link>
      <description>&lt;P&gt;Can you provide a small sample of your data? Based on your description, proc transpose should do what want. That is:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Id code&lt;/P&gt;&lt;P&gt;1&amp;nbsp;A&lt;/P&gt;&lt;P&gt;1 B&lt;/P&gt;&lt;P&gt;1 C&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Could easily become:&lt;/P&gt;&lt;P&gt;Id Code1 Code2 Code3&lt;/P&gt;&lt;P&gt;1 A&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; B&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; C&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 04 Apr 2017 22:38:43 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Using-arrays/m-p/347200#M273289</guid>
      <dc:creator>collinelliot</dc:creator>
      <dc:date>2017-04-04T22:38:43Z</dc:date>
    </item>
    <item>
      <title>Re: Using arrays</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Using-arrays/m-p/347201#M273290</link>
      <description>&lt;P&gt;Simple example:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
    do id = 1 to 3;
        do item_code = 'A', 'B', 'C';
        output;
        end;
    end;
run;

proc transpose data = have out = want prefix = code;
    by id;
    var item_code;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 04 Apr 2017 22:40:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Using-arrays/m-p/347201#M273290</guid>
      <dc:creator>collinelliot</dc:creator>
      <dc:date>2017-04-04T22:40:19Z</dc:date>
    </item>
    <item>
      <title>Re: Using arrays</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Using-arrays/m-p/347205#M273291</link>
      <description>&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;Item&lt;/TD&gt;&lt;TD&gt;Response&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;200&lt;/TD&gt;&lt;TD&gt;10000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;220&lt;/TD&gt;&lt;TD&gt;500&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;510&lt;/TD&gt;&lt;TD&gt;600000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;400&lt;/TD&gt;&lt;TD&gt;750000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;230&lt;/TD&gt;&lt;TD&gt;34000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;330&lt;/TD&gt;&lt;TD&gt;25&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;400&lt;/TD&gt;&lt;TD&gt;47&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;600&lt;/TD&gt;&lt;TD&gt;62&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;788&lt;/TD&gt;&lt;TD&gt;1000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;900&lt;/TD&gt;&lt;TD&gt;500000&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;9910&lt;/TD&gt;&lt;TD&gt;10010&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I have something like this but I need a new dataset in this format:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;ID&lt;/TD&gt;&lt;TD&gt;200&lt;/TD&gt;&lt;TD&gt;220&lt;/TD&gt;&lt;TD&gt;510&lt;/TD&gt;&lt;TD&gt;400&lt;/TD&gt;&lt;TD&gt;230&lt;/TD&gt;&lt;TD&gt;330&lt;/TD&gt;&lt;TD&gt;400&lt;/TD&gt;&lt;TD&gt;600&lt;/TD&gt;&lt;TD&gt;788&lt;/TD&gt;&lt;TD&gt;900&lt;/TD&gt;&lt;TD&gt;9910&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;10000&lt;/TD&gt;&lt;TD&gt;500&lt;/TD&gt;&lt;TD&gt;600000&lt;/TD&gt;&lt;TD&gt;750000&lt;/TD&gt;&lt;TD&gt;34000&lt;/TD&gt;&lt;TD&gt;25&lt;/TD&gt;&lt;TD&gt;47&lt;/TD&gt;&lt;TD&gt;62&lt;/TD&gt;&lt;TD&gt;1000&lt;/TD&gt;&lt;TD&gt;500000&lt;/TD&gt;&lt;TD&gt;10010&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;11000&lt;/TD&gt;&lt;TD&gt;550&lt;/TD&gt;&lt;TD&gt;660000&lt;/TD&gt;&lt;TD&gt;825000&lt;/TD&gt;&lt;TD&gt;37400&lt;/TD&gt;&lt;TD&gt;28&lt;/TD&gt;&lt;TD&gt;52&lt;/TD&gt;&lt;TD&gt;68&lt;/TD&gt;&lt;TD&gt;1100&lt;/TD&gt;&lt;TD&gt;550000&lt;/TD&gt;&lt;TD&gt;11011&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;12100&lt;/TD&gt;&lt;TD&gt;605&lt;/TD&gt;&lt;TD&gt;726000&lt;/TD&gt;&lt;TD&gt;907500&lt;/TD&gt;&lt;TD&gt;41140&lt;/TD&gt;&lt;TD&gt;30&lt;/TD&gt;&lt;TD&gt;57&lt;/TD&gt;&lt;TD&gt;75&lt;/TD&gt;&lt;TD&gt;1210&lt;/TD&gt;&lt;TD&gt;605000&lt;/TD&gt;&lt;TD&gt;12112&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;13310&lt;/TD&gt;&lt;TD&gt;666&lt;/TD&gt;&lt;TD&gt;798600&lt;/TD&gt;&lt;TD&gt;998250&lt;/TD&gt;&lt;TD&gt;45254&lt;/TD&gt;&lt;TD&gt;33&lt;/TD&gt;&lt;TD&gt;63&lt;/TD&gt;&lt;TD&gt;83&lt;/TD&gt;&lt;TD&gt;1331&lt;/TD&gt;&lt;TD&gt;665500&lt;/TD&gt;&lt;TD&gt;13323&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;14641&lt;/TD&gt;&lt;TD&gt;732&lt;/TD&gt;&lt;TD&gt;878460&lt;/TD&gt;&lt;TD&gt;1098075&lt;/TD&gt;&lt;TD&gt;49779&lt;/TD&gt;&lt;TD&gt;37&lt;/TD&gt;&lt;TD&gt;69&lt;/TD&gt;&lt;TD&gt;91&lt;/TD&gt;&lt;TD&gt;1464&lt;/TD&gt;&lt;TD&gt;732050&lt;/TD&gt;&lt;TD&gt;14656&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;16105&lt;/TD&gt;&lt;TD&gt;805&lt;/TD&gt;&lt;TD&gt;966306&lt;/TD&gt;&lt;TD&gt;1207883&lt;/TD&gt;&lt;TD&gt;54757&lt;/TD&gt;&lt;TD&gt;40&lt;/TD&gt;&lt;TD&gt;76&lt;/TD&gt;&lt;TD&gt;100&lt;/TD&gt;&lt;TD&gt;1611&lt;/TD&gt;&lt;TD&gt;805255&lt;/TD&gt;&lt;TD&gt;16121&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;17716&lt;/TD&gt;&lt;TD&gt;886&lt;/TD&gt;&lt;TD&gt;1062937&lt;/TD&gt;&lt;TD&gt;1328671&lt;/TD&gt;&lt;TD&gt;60233&lt;/TD&gt;&lt;TD&gt;44&lt;/TD&gt;&lt;TD&gt;83&lt;/TD&gt;&lt;TD&gt;110&lt;/TD&gt;&lt;TD&gt;1772&lt;/TD&gt;&lt;TD&gt;885781&lt;/TD&gt;&lt;TD&gt;17733&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;TD&gt;19487&lt;/TD&gt;&lt;TD&gt;974&lt;/TD&gt;&lt;TD&gt;1169230&lt;/TD&gt;&lt;TD&gt;1461538&lt;/TD&gt;&lt;TD&gt;66256&lt;/TD&gt;&lt;TD&gt;49&lt;/TD&gt;&lt;TD&gt;92&lt;/TD&gt;&lt;TD&gt;121&lt;/TD&gt;&lt;TD&gt;1949&lt;/TD&gt;&lt;TD&gt;974359&lt;/TD&gt;&lt;TD&gt;19507&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;9&lt;/TD&gt;&lt;TD&gt;21436&lt;/TD&gt;&lt;TD&gt;1072&lt;/TD&gt;&lt;TD&gt;1286153&lt;/TD&gt;&lt;TD&gt;1607692&lt;/TD&gt;&lt;TD&gt;72882&lt;/TD&gt;&lt;TD&gt;54&lt;/TD&gt;&lt;TD&gt;101&lt;/TD&gt;&lt;TD&gt;133&lt;/TD&gt;&lt;TD&gt;2144&lt;/TD&gt;&lt;TD&gt;1071794&lt;/TD&gt;&lt;TD&gt;21457&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;10&lt;/TD&gt;&lt;TD&gt;23579&lt;/TD&gt;&lt;TD&gt;1179&lt;/TD&gt;&lt;TD&gt;1414769&lt;/TD&gt;&lt;TD&gt;1768461&lt;/TD&gt;&lt;TD&gt;80170&lt;/TD&gt;&lt;TD&gt;59&lt;/TD&gt;&lt;TD&gt;111&lt;/TD&gt;&lt;TD&gt;146&lt;/TD&gt;&lt;TD&gt;2358&lt;/TD&gt;&lt;TD&gt;1178974&lt;/TD&gt;&lt;TD&gt;23603&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;One trouble is that ItemCodes vary by ID. &amp;nbsp;There are 135 possible ItemCodes from 220-9912. &amp;nbsp;Sometimes when I read in the datafile there maybe 5 IDS next time maybe 60.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 04 Apr 2017 22:56:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Using-arrays/m-p/347205#M273291</guid>
      <dc:creator>overky</dc:creator>
      <dc:date>2017-04-04T22:56:44Z</dc:date>
    </item>
    <item>
      <title>Re: Using arrays</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Using-arrays/m-p/347207#M273292</link>
      <description>&lt;P&gt;Try the following and see if that works. I added an ID for testing.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input ID Item Response;
datalines;
1 200 10000
1 220 500
1 510 600000
1 400 750000
1 230 34000
2 330 25
2 400 47
2 600 62
2 788 1000
2 900 500000
2 9910 10010
;

proc transpose data = have out = want prefix = item_;
    by id;
    var response;
    id item;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 04 Apr 2017 23:09:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Using-arrays/m-p/347207#M273292</guid>
      <dc:creator>collinelliot</dc:creator>
      <dc:date>2017-04-04T23:09:22Z</dc:date>
    </item>
    <item>
      <title>Re: Using arrays</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Using-arrays/m-p/347208#M273293</link>
      <description>&lt;P&gt;Note that you cannot (should not?) have just the numbers as the variable names in the transpose, so in the example I've added "item_" as a prefix.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 04 Apr 2017 23:10:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Using-arrays/m-p/347208#M273293</guid>
      <dc:creator>collinelliot</dc:creator>
      <dc:date>2017-04-04T23:10:27Z</dc:date>
    </item>
    <item>
      <title>Re: Using arrays</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Using-arrays/m-p/347209#M273294</link>
      <description>&lt;P&gt;The long format is better for storing the data. How are you going to handle the multiple records, ie ID 1 Item 400 is repeated twice in this list. Do you need to summarize this first somehow?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Now that I've said that, this is a straight PROC TRANSPOSE procedure if you want a SAS dataset. Especially if the data is dynamic.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You may need to sort the dataset by ID first.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc transpose data=have out=want prefix=Item_;
by ID;
id Item;
var response;
run;
&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;if you want a report - HTML, PDF or EXCEL PROC TABULATE is actually probably a better procedure, especially if you also need to summarize, since it will do that in one step.&lt;/P&gt;</description>
      <pubDate>Tue, 04 Apr 2017 23:16:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Using-arrays/m-p/347209#M273294</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2017-04-04T23:16:02Z</dc:date>
    </item>
    <item>
      <title>Re: Using arrays</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Using-arrays/m-p/347210#M273295</link>
      <description>&lt;P&gt;What is the count of distinct item code values? That is how many columns you'll end up with in the transposed data.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Variation by ID is not an issue as long at there are not duplicates within an ID.&lt;/P&gt;</description>
      <pubDate>Tue, 04 Apr 2017 23:26:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Using-arrays/m-p/347210#M273295</guid>
      <dc:creator>collinelliot</dc:creator>
      <dc:date>2017-04-04T23:26:13Z</dc:date>
    </item>
    <item>
      <title>Re: Using arrays</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Using-arrays/m-p/347212#M273296</link>
      <description>&lt;P&gt;Thank you. &amp;nbsp;The Proc Transpose worked. &amp;nbsp;I do not need to summarize the ItemCode 400 twice was a mistake in my example. &amp;nbsp;There will never be duplicate itemcodes.&lt;/P&gt;</description>
      <pubDate>Tue, 04 Apr 2017 23:32:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Using-arrays/m-p/347212#M273296</guid>
      <dc:creator>overky</dc:creator>
      <dc:date>2017-04-04T23:32:07Z</dc:date>
    </item>
    <item>
      <title>Re: Using arrays</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Using-arrays/m-p/347214#M273297</link>
      <description>&lt;P&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/137537"&gt;@overky&lt;/a&gt;&amp;nbsp;Please mark&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/93752"&gt;@collinelliot&lt;/a&gt;&amp;nbsp;solution as correct then &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 05 Apr 2017 00:10:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Using-arrays/m-p/347214#M273297</guid>
      <dc:creator>Reeza</dc:creator>
      <dc:date>2017-04-05T00:10:18Z</dc:date>
    </item>
  </channel>
</rss>

