<?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 Aligning a dataset in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Aligning-a-dataset/m-p/589579#M168665</link>
    <description>&lt;P&gt;Hello,&lt;BR /&gt;&lt;BR /&gt;I have a dataset with the following structure:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
   input data_set variable_name$    DATA_A$    DATA_B$    DATA_C$	DATA_D$ ; 
   cards; 
1 A num . . . 
1 B num . . . 
1 C char . . .
1 D num . . . 
2 A . num . . 
2 B . num . .
2 C . char . .
2 D . num . . 
3 A . . num . 
3 B . . num .
3 C . . char .
3 D . . num .  
4 A . . . num 
4 B . . . num
4 C . . . char
4 D . . . num 
;;;;;
   run; &lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;I want to end up with this:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;   data want;
   input  variable_name$    DATA_A$    DATA_B$    DATA_C$    DATA_D$ ; 
   cards; 
A num num num num 
B num num num num  
C char char char char
D num num num num num 
;;;;
   run; &lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Which means that I want to summarize or align my dataset to make it more compact and remove the blank spaces.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks for you help&lt;/P&gt;</description>
    <pubDate>Wed, 18 Sep 2019 10:22:09 GMT</pubDate>
    <dc:creator>pkopersk</dc:creator>
    <dc:date>2019-09-18T10:22:09Z</dc:date>
    <item>
      <title>Aligning a dataset</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Aligning-a-dataset/m-p/589579#M168665</link>
      <description>&lt;P&gt;Hello,&lt;BR /&gt;&lt;BR /&gt;I have a dataset with the following structure:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
   input data_set variable_name$    DATA_A$    DATA_B$    DATA_C$	DATA_D$ ; 
   cards; 
1 A num . . . 
1 B num . . . 
1 C char . . .
1 D num . . . 
2 A . num . . 
2 B . num . .
2 C . char . .
2 D . num . . 
3 A . . num . 
3 B . . num .
3 C . . char .
3 D . . num .  
4 A . . . num 
4 B . . . num
4 C . . . char
4 D . . . num 
;;;;;
   run; &lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;I want to end up with this:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;   data want;
   input  variable_name$    DATA_A$    DATA_B$    DATA_C$    DATA_D$ ; 
   cards; 
A num num num num 
B num num num num  
C char char char char
D num num num num num 
;;;;
   run; &lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Which means that I want to summarize or align my dataset to make it more compact and remove the blank spaces.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thanks for you help&lt;/P&gt;</description>
      <pubDate>Wed, 18 Sep 2019 10:22:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Aligning-a-dataset/m-p/589579#M168665</guid>
      <dc:creator>pkopersk</dc:creator>
      <dc:date>2019-09-18T10:22:09Z</dc:date>
    </item>
    <item>
      <title>Re: Aligning a dataset</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Aligning-a-dataset/m-p/589582#M168667</link>
      <description>&lt;P&gt;Here is one way&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sort data=have;
    by variable_name;
run;

data want(drop=data_set);
    update have(obs=0) have;
    by variable_name;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Result:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;variable_name DATA_A DATA_B DATA_C DATA_D
A   num    num    num    num
B   num    num    num    num
C   char   char   char   char
D   num    num    num    num&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 18 Sep 2019 10:32:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Aligning-a-dataset/m-p/589582#M168667</guid>
      <dc:creator>PeterClemmensen</dc:creator>
      <dc:date>2019-09-18T10:32:00Z</dc:date>
    </item>
    <item>
      <title>Re: Aligning a dataset</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Aligning-a-dataset/m-p/589597#M168672</link>
      <description>&lt;P&gt;Without a SORT&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
   input data_set variable_name$    DATA_A$    DATA_B$    DATA_C$	DATA_D$ ; 
   cards; 
1 A num . . . 
1 B num . . . 
1 C char . . .
1 D num . . . 
2 A . num . . 
2 B . num . .
2 C . char . .
2 D . num . . 
3 A . . num . 
3 B . . num .
3 C . . char .
3 D . . num .  
4 A . . . num 
4 B . . . num
4 C . . . char
4 D . . . num 
;;;;;
   run; 

data _null_;
if _n_=1 then do;
 dcl hash H (dataset:'have(obs=0)',ordered: "A") ;
 h.definekey  ("variable_name") ;
 h.definedata ("variable_name","DATA_A", "DATA_B", "DATA_C","DATA_D") ;
 h.definedone () ;
 end;
set have end=l;
array t(*) DATA_A--DATA_D;
array u(4)$ _temporary_;
do _n_=1 to dim(t);
 u(_n_)=t(_n_);
end;
_n_=whichc(coalescec(of u(*)),of u(*));
rc=h.find();
t(_n_)=u(_n_);
h.replace();
if l;
h.output(dataset:'want');
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 18 Sep 2019 12:05:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Aligning-a-dataset/m-p/589597#M168672</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2019-09-18T12:05:17Z</dc:date>
    </item>
  </channel>
</rss>

