<?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: Keep multiple rows and same variable and different variable in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Keep-multiple-rows-and-same-variable-and-different-variable/m-p/923694#M363644</link>
    <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
infile cards dlm="|";
input Name :$32. (CEOANN CFOANN) (:$3.) GVKEYYEAR;
cards;
Batman|CEO| |2008185
Robin| |CFO|2008185
Mickey|CEO| |2001053
Mikey| |CFO|2088087
Leo|CEO| |2088087
Goofy| |CFO|2109087
Superman|CEO| |2089171
Peanut Butter|CEO| |1089721
Jelly| |CFO|1089721
;
run;

proc sql;
create table want as
select * from have 
 group by GVKEYYEAR
  having sum(CEOANN='CEO') and sum(CFOANN='CFO');
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Wed, 10 Apr 2024 02:22:05 GMT</pubDate>
    <dc:creator>Ksharp</dc:creator>
    <dc:date>2024-04-10T02:22:05Z</dc:date>
    <item>
      <title>Keep multiple rows and same variable and different variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Keep-multiple-rows-and-same-variable-and-different-variable/m-p/923650#M363626</link>
      <description>&lt;P&gt;Hi All,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am wanting to keep only observations where this is both a CEO and a CFO for every GVKEYYEAR.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I HAVE the following:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Name&lt;/TD&gt;&lt;TD&gt;CEOANN&lt;/TD&gt;&lt;TD&gt;CFOANN&lt;/TD&gt;&lt;TD&gt;GVKEYYEAR&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Batman&lt;/TD&gt;&lt;TD&gt;CEO&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;2008185&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Robin&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;CFO&lt;/TD&gt;&lt;TD&gt;2008185&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Mickey&lt;/TD&gt;&lt;TD&gt;CEO&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;2001053&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Mikey&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;CFO&lt;/TD&gt;&lt;TD&gt;2088087&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Leo&lt;/TD&gt;&lt;TD&gt;CEO&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;2088087&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Goofy&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;CFO&lt;/TD&gt;&lt;TD&gt;2109087&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Superman&lt;/TD&gt;&lt;TD&gt;CEO&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;2089171&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Peanut Butter&lt;/TD&gt;&lt;TD&gt;CEO&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;1089721&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Jelly&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;CFO&lt;/TD&gt;&lt;TD&gt;1089721&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;What I WANT is the following:&lt;/P&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Name&lt;/TD&gt;&lt;TD&gt;CEOANN&lt;/TD&gt;&lt;TD&gt;CFOANN&lt;/TD&gt;&lt;TD&gt;GVKEYYEAR&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Batman&lt;/TD&gt;&lt;TD&gt;CEO&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;2008185&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Robin&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;CFO&lt;/TD&gt;&lt;TD&gt;2008185&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Mikey&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;CFO&lt;/TD&gt;&lt;TD&gt;2088087&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Leo&lt;/TD&gt;&lt;TD&gt;CEO&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;2088087&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Peanut Butter&lt;/TD&gt;&lt;TD&gt;CEO&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;1089721&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Jelly&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;CFO&lt;/TD&gt;&lt;TD&gt;1089721&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;What code may help me do this?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you!&lt;/P&gt;</description>
      <pubDate>Tue, 09 Apr 2024 16:44:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Keep-multiple-rows-and-same-variable-and-different-variable/m-p/923650#M363626</guid>
      <dc:creator>teamlinerek</dc:creator>
      <dc:date>2024-04-09T16:44:27Z</dc:date>
    </item>
    <item>
      <title>Re: Keep multiple rows and same variable and different variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Keep-multiple-rows-and-same-variable-and-different-variable/m-p/923651#M363627</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
infile cards dlm="|";
input Name :$32. (CEOANN CFOANN) (:$3.) GVKEYYEAR;
cards;
Batman|CEO| |2008185
Robin| |CFO|2008185
Mickey|CEO| |2001053
Mikey| |CFO|2088087
Leo|CEO| |2088087
Goofy| |CFO|2109087
Superman|CEO| |2089171
Peanut Butter|CEO| |1089721
Jelly| |CFO|1089721
;
run;
proc print;
run;

data want;
  call missing(check1,check2);
  do _N_=1 by 1 until(last.GVKEYYEAR);
    set have;
    by GVKEYYEAR notsorted;
    check1+(CEOANN='CEO');
    check2+(CFOANN='CFO');
  end;

  do _N_=1 to _N_;
    set have;
    if check1 &amp;amp; check2 then output;
  end;
  drop check1 check2; 
run; 
proc print;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 09 Apr 2024 16:56:10 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Keep-multiple-rows-and-same-variable-and-different-variable/m-p/923651#M363627</guid>
      <dc:creator>yabwon</dc:creator>
      <dc:date>2024-04-09T16:56:10Z</dc:date>
    </item>
    <item>
      <title>Re: Keep multiple rows and same variable and different variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Keep-multiple-rows-and-same-variable-and-different-variable/m-p/923655#M363630</link>
      <description>&lt;P&gt;This works for example data provided&lt;/P&gt;
&lt;PRE&gt;proc sql;
   create table want as
   select b.* 
   from 
     ( select gvkeyyear 
      from  have
      where not missing(ceoann) or not missing(cfoAnn)
      group gvkeyyear
      having count(gvkeyyear)=2
     ) as a
     left join have as b
     on a.gvkeyyear=b.gvkeyyear
   ;  
quit;&lt;/PRE&gt;
&lt;P&gt;The Where may not be needed but might if&amp;nbsp; you have other observations in your data for the gvkeyyear related to other data not shown in your example.&lt;/P&gt;
&lt;P&gt;If you built that set to have two separate variables for Ceoann and CfoAnn you might consider a single variable with the position value, such as CEO and CFO. That is quite often more flexible in the long run than adding a bunch of variables for each level of meaning.&lt;/P&gt;</description>
      <pubDate>Tue, 09 Apr 2024 17:42:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Keep-multiple-rows-and-same-variable-and-different-variable/m-p/923655#M363630</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2024-04-09T17:42:16Z</dc:date>
    </item>
    <item>
      <title>Re: Keep multiple rows and same variable and different variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Keep-multiple-rows-and-same-variable-and-different-variable/m-p/923690#M363640</link>
      <description>&lt;P&gt;Your data appears to be already presented either as a single record for a given GVKEYYEAR, or a pair of records for a GVKEYYEAR.&amp;nbsp; In the latter case, one CEO appears and one CFO appears.&amp;nbsp; If that is the case, then just delete all the singletons and keep all the pairs.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
infile cards dlm="|";
input Name :$32. (CEOANN CFOANN) (:$3.) GVKEYYEAR;
cards;
Batman|CEO| |2008185
Robin| |CFO|2008185
Mickey|CEO| |2001053
Mikey| |CFO|2088087
Leo|CEO| |2088087
Goofy| |CFO|2109087
Superman|CEO| |2089171
Peanut Butter|CEO| |1089721
Jelly| |CFO|1089721
run;
data want;
  set have ;
  by gvkeyyear notsorted;
  if not(first.gvkeyyear=1 and last.gvkeyyear=1); 
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 10 Apr 2024 01:53:39 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Keep-multiple-rows-and-same-variable-and-different-variable/m-p/923690#M363640</guid>
      <dc:creator>mkeintz</dc:creator>
      <dc:date>2024-04-10T01:53:39Z</dc:date>
    </item>
    <item>
      <title>Re: Keep multiple rows and same variable and different variable</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Keep-multiple-rows-and-same-variable-and-different-variable/m-p/923694#M363644</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data have;
infile cards dlm="|";
input Name :$32. (CEOANN CFOANN) (:$3.) GVKEYYEAR;
cards;
Batman|CEO| |2008185
Robin| |CFO|2008185
Mickey|CEO| |2001053
Mikey| |CFO|2088087
Leo|CEO| |2088087
Goofy| |CFO|2109087
Superman|CEO| |2089171
Peanut Butter|CEO| |1089721
Jelly| |CFO|1089721
;
run;

proc sql;
create table want as
select * from have 
 group by GVKEYYEAR
  having sum(CEOANN='CEO') and sum(CFOANN='CFO');
quit;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Wed, 10 Apr 2024 02:22:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Keep-multiple-rows-and-same-variable-and-different-variable/m-p/923694#M363644</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2024-04-10T02:22:05Z</dc:date>
    </item>
  </channel>
</rss>

