<?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: selecting the first ocuurance in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/selecting-the-first-ocuurance/m-p/571023#M161059</link>
    <description>&lt;P&gt;In my previous post I used Array to give the output. I am not sure whether that is the right output. Now I give the Input Data set and the derived output obtained using Array. Do you want the first non-missing values for your variables (18 in your case) and ignore all other values in that Row? Check and say what output you need.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;The Input Data Set:

data have;
input date c1v1 c1v2 c1v3 c2v1 c2v2 c2v3 c3v1 c3v2 c3v3;
datalines;
1  .   .  .  21 22 23  31 32 33
2 11  12  13  .  .  .  31 32 33
3 11  12  13 21 22 23  31 32 33
4 11  12  13 21 22 23  31 32 33
;
run;

&lt;/PRE&gt;
&lt;P&gt;The Output Data set:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;company 	date 	v1 	v2 	v3
c2 	1 	21 	22 	23
c3 	1 	31 	32 	33
c1 	2 	11 	12 	13
c3 	2 	31 	32 	33
c1 	3 	11 	12 	13
c2 	3 	21 	22 	23
c3 	3 	31 	32 	33
c1 	4 	11 	12 	13
c2 	4 	21 	22 	23
c3 	4 	31 	32 	33&lt;/PRE&gt;</description>
    <pubDate>Wed, 03 Jul 2019 16:48:25 GMT</pubDate>
    <dc:creator>KachiM</dc:creator>
    <dc:date>2019-07-03T16:48:25Z</dc:date>
    <item>
      <title>selecting the first ocuurance</title>
      <link>https://communities.sas.com/t5/SAS-Programming/selecting-the-first-ocuurance/m-p/570904#M161040</link>
      <description>&lt;P&gt;I have the data of ‘k’ (&amp;gt;1000)companies (C) and each company is having&amp;nbsp;&amp;nbsp; ‘N’ variables(=18) &amp;nbsp;as a time series ( dates). But, the starting date i.e. first non_zero or non_null or non_blank value for each company is not same.&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;Date&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;C1var1&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;C1var2&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;….&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;C1varN&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;C2var1&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;C2var2&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;…..&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;C2varN&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;….&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;CKvar1&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;CKvar2&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;…&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;CKvarN&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;1/1/2018&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;2/1/2018&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1279.38&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;70&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;….&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;70&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;….&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;3/1/2018&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1515.61&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;82.8&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;…..&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;83.3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1320.59&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;67&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;72.5&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;4/1/2018&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1537.17&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;81.25&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;85.25&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1364.19&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;70&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;72.9&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1221.88&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;68&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;68&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;5/1/2018&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1464.34&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;81.4&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;81.85&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1321.55&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;72&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;73&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1240.57&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;63.1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;66.9&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;6/1/2018&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1449.96&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;77.55&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;78.7&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1256.86&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;68.7&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;68.7&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1254.94&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;64.55&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;66.9&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;7/1/2018&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1338.32&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;76.9&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;76.9&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1243.92&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;66&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;66.85&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1232.9&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;67&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;69.85&lt;/P&gt;&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 to pickup the data of each company at its starting point and each variable should be in same column as follows&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;Company&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Date&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Var1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Var2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Vark&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;C1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;3/1/2018&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1515.61&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;82.8&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;83.3&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;C2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2/1/2018&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1279.38&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;70&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;70&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;…&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;…&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;…&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;CK&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;4/1/2018&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1221.88&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;68&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;68&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;What would be the best codes e to get the data in desired format&lt;/P&gt;&lt;P&gt;Version 9.4&lt;/P&gt;</description>
      <pubDate>Wed, 03 Jul 2019 11:07:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/selecting-the-first-ocuurance/m-p/570904#M161040</guid>
      <dc:creator>KABONLINE</dc:creator>
      <dc:date>2019-07-03T11:07:18Z</dc:date>
    </item>
    <item>
      <title>Re: selecting the first ocuurance</title>
      <link>https://communities.sas.com/t5/SAS-Programming/selecting-the-first-ocuurance/m-p/570918#M161045</link>
      <description>&lt;PRE&gt;I have the data of ‘k’ (&amp;gt;1000)companies (C) and each company is having   ‘N’ variables(=18)  as a time series ( dates). But, the starting date i.e. first non_zero or non_null or non_blank value for each company is not same.

&lt;/PRE&gt;
&lt;P&gt;Unable to understand your K. Will there be 18*K + 1 columns per observation?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The Array will be useful for this purpose.&lt;/P&gt;
&lt;P&gt;You need to specify what is K(or C?) so that array can be suitably sized.&lt;/P&gt;
&lt;P&gt;18 cells at a time can be scanned in the array to look for the first non-empty cell as the starting point and proceed up to 18th cell. output C besides those non-missing values.&lt;/P&gt;
&lt;P&gt;Similarly next 18 cells and on.&lt;/P&gt;
&lt;P&gt;Finally sort the output Data Set by C and Date(edited).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 03 Jul 2019 11:33:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/selecting-the-first-ocuurance/m-p/570918#M161045</guid>
      <dc:creator>KachiM</dc:creator>
      <dc:date>2019-07-03T11:33:20Z</dc:date>
    </item>
    <item>
      <title>Re: selecting the first ocuurance</title>
      <link>https://communities.sas.com/t5/SAS-Programming/selecting-the-first-ocuurance/m-p/570921#M161046</link>
      <description>&lt;P&gt;Welcome to the SAS Communities &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If your data is representable of your actual problem, then you can do something like this&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
infile datalines dlm=',' dsd;
input Date:ddmmyy10. C1var1 C1var2 C1var3 C2var1 C2var2 C2var3;
format Date ddmmyy10.;
datalines;
1/1/2018, , , , , , 
2/1/2018, , , ,1279.38,70,70
3/1/2018,1515.61,82.8,83.3,1320.59,67,72.5
4/1/2018,1537.17,81.25,85.25,1364.19,70,72.9
;

proc transpose data=have out=havelong;
    by Date;
run;

proc sql;
    create table temp as
    select Date,
           substr(_NAME_, 1, 2) as Company,
           substr(_NAME_, 3, length(_NAME_)) as var,
           COL1 as value
    from havelong
    where COL1 ne .
    group by Company
    having date=min(date)
    order by Company, var;
quit;

proc transpose data=temp out=want(drop=_NAME_);
    by Company Date;
    id var;
    var value;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 03 Jul 2019 11:47:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/selecting-the-first-ocuurance/m-p/570921#M161046</guid>
      <dc:creator>PeterClemmensen</dc:creator>
      <dc:date>2019-07-03T11:47:31Z</dc:date>
    </item>
    <item>
      <title>Re: selecting the first ocuurance</title>
      <link>https://communities.sas.com/t5/SAS-Programming/selecting-the-first-ocuurance/m-p/570974#M161055</link>
      <description>&lt;P&gt;This illustrates the use of Array. I have assumed 3 Companies each having a name of 2 bytes. Further 3 variables are assumed. Four observations are processed.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;data have;
input date c1v1 c1v2 c1v3 c2v1 c2v2 c2v3 c3v1 c3v2 c3v3;
datalines;
1  .   .  .  21 22 23  31 32 33
2 11  12  13  .  .  .  31 32 33
3 11  12  13 21 22 23  31 32 33
4 11  12  13 21 22 23  31 32 33
;
run;


data want;
   length company $2;
   set have;
   array k c1v1 -- c3v3;
   array v v1 - v3;
   
   do i = 1 to dim(k);
      if missing(k[i]) then continue;
      else do;
         j = mod(i,3);
         if j = 0 then j = 3;
         v[j] = k[i];
         company = vname(k[i]);
      end;
      if j = 3 then output;
   end;
keep company date v:;
run;&lt;/PRE&gt;
&lt;P&gt;Note Company has a length of 2 bytes. So in&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;company = vname(k[i]);&lt;/PRE&gt;
&lt;P&gt;Company gets the first 2 bytes from each variable name.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;It looks there is no need for Sorting by Company and Date.&lt;/P&gt;</description>
      <pubDate>Wed, 03 Jul 2019 14:41:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/selecting-the-first-ocuurance/m-p/570974#M161055</guid>
      <dc:creator>KachiM</dc:creator>
      <dc:date>2019-07-03T14:41:17Z</dc:date>
    </item>
    <item>
      <title>Re: selecting the first ocuurance</title>
      <link>https://communities.sas.com/t5/SAS-Programming/selecting-the-first-ocuurance/m-p/571023#M161059</link>
      <description>&lt;P&gt;In my previous post I used Array to give the output. I am not sure whether that is the right output. Now I give the Input Data set and the derived output obtained using Array. Do you want the first non-missing values for your variables (18 in your case) and ignore all other values in that Row? Check and say what output you need.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;The Input Data Set:

data have;
input date c1v1 c1v2 c1v3 c2v1 c2v2 c2v3 c3v1 c3v2 c3v3;
datalines;
1  .   .  .  21 22 23  31 32 33
2 11  12  13  .  .  .  31 32 33
3 11  12  13 21 22 23  31 32 33
4 11  12  13 21 22 23  31 32 33
;
run;

&lt;/PRE&gt;
&lt;P&gt;The Output Data set:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;company 	date 	v1 	v2 	v3
c2 	1 	21 	22 	23
c3 	1 	31 	32 	33
c1 	2 	11 	12 	13
c3 	2 	31 	32 	33
c1 	3 	11 	12 	13
c2 	3 	21 	22 	23
c3 	3 	31 	32 	33
c1 	4 	11 	12 	13
c2 	4 	21 	22 	23
c3 	4 	31 	32 	33&lt;/PRE&gt;</description>
      <pubDate>Wed, 03 Jul 2019 16:48:25 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/selecting-the-first-ocuurance/m-p/571023#M161059</guid>
      <dc:creator>KachiM</dc:creator>
      <dc:date>2019-07-03T16:48:25Z</dc:date>
    </item>
  </channel>
</rss>

