<?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: Many rows to single row by using array in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Many-rows-to-single-row-by-using-array/m-p/401799#M97508</link>
    <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input ID	visit $ 15.	weight;
cards;
1001	weight_v1	56.5
1001	weight_v2	67.5
1001	weight_v3	62.8
1002	weight_v1	78.9
1002	weight_v2	75.3
1002	weight_v3	70.2
1003	weight_v1	67.7
1003	weight_v2	64.8
1003	weight_v3	63.9
;
run;

data want;
	set have;
	by id notsorted;
	array ar{*} weight_v1 weight_v2 weight_v3;
	retain weight_v:;
	visit_ = input(substr(visit,9,1),best.);
	if first.id then call missing (of ar{*});
	
		do visit_ = 1 to dim(ar);
			ar{visit_}=weight;
		end;

	if last.id then output;
	drop visit weight visit_ ;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Fri, 06 Oct 2017 14:45:25 GMT</pubDate>
    <dc:creator>SAS_inquisitive</dc:creator>
    <dc:date>2017-10-06T14:45:25Z</dc:date>
    <item>
      <title>Many rows to single row by using array</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Many-rows-to-single-row-by-using-array/m-p/401684#M97498</link>
      <description>&lt;P&gt;HI,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Please find the below table is input dataset source.&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;visit&lt;/TD&gt;&lt;TD&gt;weight&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1001&lt;/TD&gt;&lt;TD&gt;weight_v1&lt;/TD&gt;&lt;TD&gt;56.5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1001&lt;/TD&gt;&lt;TD&gt;weight_v2&lt;/TD&gt;&lt;TD&gt;67.5&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1001&lt;/TD&gt;&lt;TD&gt;weight_v3&lt;/TD&gt;&lt;TD&gt;62.8&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1002&lt;/TD&gt;&lt;TD&gt;weight_v1&lt;/TD&gt;&lt;TD&gt;78.9&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1002&lt;/TD&gt;&lt;TD&gt;weight_v2&lt;/TD&gt;&lt;TD&gt;75.3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1002&lt;/TD&gt;&lt;TD&gt;weight_v3&lt;/TD&gt;&lt;TD&gt;70.2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1003&lt;/TD&gt;&lt;TD&gt;weight_v1&lt;/TD&gt;&lt;TD&gt;67.7&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1003&lt;/TD&gt;&lt;TD&gt;weight_v2&lt;/TD&gt;&lt;TD&gt;64.8&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1003&lt;/TD&gt;&lt;TD&gt;weight_v3&lt;/TD&gt;&lt;TD&gt;63.9&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I want to restructure this dataset into single row from many rows &lt;U&gt;&lt;STRONG&gt;by using array&lt;/STRONG&gt;&lt;/U&gt; only not by using transpose. so the output should be like this as follows:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Id&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;weight_v1&lt;/TD&gt;&lt;TD&gt;weight_v2&lt;/TD&gt;&lt;TD&gt;weight_v3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1001&lt;/TD&gt;&lt;TD&gt;56.5&lt;/TD&gt;&lt;TD&gt;67.5&lt;/TD&gt;&lt;TD&gt;62.8&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1002&lt;/TD&gt;&lt;TD&gt;78.9&lt;/TD&gt;&lt;TD&gt;75.3&lt;/TD&gt;&lt;TD&gt;70.2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;1003&lt;/TD&gt;&lt;TD&gt;67.7&lt;/TD&gt;&lt;TD&gt;64.8&lt;/TD&gt;&lt;TD&gt;63.9&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Please help me on this. Thanks in advance.&lt;/P&gt;</description>
      <pubDate>Fri, 06 Oct 2017 10:29:03 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Many-rows-to-single-row-by-using-array/m-p/401684#M97498</guid>
      <dc:creator>GeethaMN</dc:creator>
      <dc:date>2017-10-06T10:29:03Z</dc:date>
    </item>
    <item>
      <title>Re: Many rows to single row by using array</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Many-rows-to-single-row-by-using-array/m-p/401687#M97499</link>
      <description>&lt;P&gt;Why, is this a learning task?&amp;nbsp; If so then look at the documentation, the many examples out on the web, and then write the code yourself, its very simple.&amp;nbsp; In one datastep you will need an array statement, a retain statement, and a by statement, and only output on last record.&lt;/P&gt;
&lt;P&gt;If it is not a learning exercise, then why are you restricting yourself to arrays, the example you give is&amp;nbsp;&lt;STRONG&gt;exactly&lt;/STRONG&gt; what proc transpose is built, tested, and optimised for, not using it is like writing code only using your thumbs!&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 06 Oct 2017 10:40:33 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Many-rows-to-single-row-by-using-array/m-p/401687#M97499</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2017-10-06T10:40:33Z</dc:date>
    </item>
    <item>
      <title>Re: Many rows to single row by using array</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Many-rows-to-single-row-by-using-array/m-p/401688#M97500</link>
      <description>&lt;P&gt;Don't be a fool, use the right tool.&lt;/P&gt;
&lt;P&gt;(Hey, it's rhyming)&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The right tool is proc transpose.&lt;/P&gt;</description>
      <pubDate>Fri, 06 Oct 2017 10:43:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Many-rows-to-single-row-by-using-array/m-p/401688#M97500</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2017-10-06T10:43:16Z</dc:date>
    </item>
    <item>
      <title>Re: Many rows to single row by using array</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Many-rows-to-single-row-by-using-array/m-p/401799#M97508</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
input ID	visit $ 15.	weight;
cards;
1001	weight_v1	56.5
1001	weight_v2	67.5
1001	weight_v3	62.8
1002	weight_v1	78.9
1002	weight_v2	75.3
1002	weight_v3	70.2
1003	weight_v1	67.7
1003	weight_v2	64.8
1003	weight_v3	63.9
;
run;

data want;
	set have;
	by id notsorted;
	array ar{*} weight_v1 weight_v2 weight_v3;
	retain weight_v:;
	visit_ = input(substr(visit,9,1),best.);
	if first.id then call missing (of ar{*});
	
		do visit_ = 1 to dim(ar);
			ar{visit_}=weight;
		end;

	if last.id then output;
	drop visit weight visit_ ;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Fri, 06 Oct 2017 14:45:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Many-rows-to-single-row-by-using-array/m-p/401799#M97508</guid>
      <dc:creator>SAS_inquisitive</dc:creator>
      <dc:date>2017-10-06T14:45:25Z</dc:date>
    </item>
  </channel>
</rss>

