<?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: create a group of observations based on one observation in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/create-a-group-of-observations-based-on-one-observation/m-p/687536#M208725</link>
    <description>&lt;P&gt;Hello,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Something like this ?&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;data B1 B2 B3 B4;
    set table1;
    length Action_BorC $50.;

    keep ID edate Action_A Action_BorC;
    if A_date=B_date=C_date then do;
        edate=A_date;
        Action_BorC="wrong";
        output B4;
    end;
    else if B_date=C_date then do;
        edate=A_date;
        Action_BorC="stable B";
        output B3;
        edate=B_date;
        Action_BorC="wrong";
        output B3;
    end;
    else if A_date=B_date or A_date=C_date then do;
        edate=B_date;
        Action_BorC=Action_B;
        output B2;
        edate=C_date;
        Action_BorC=Action_C;
        output B2;
    end;
    else do;
        edate=A_date;
        Action_BorC="stable B";
        output B1; 
        edate=B_date;
        Action_BorC=Action_B;
        output B1; 
        edate=C_date;
        Action_BorC=Action_C;
        output B1;
    end;
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>Tue, 29 Sep 2020 14:49:41 GMT</pubDate>
    <dc:creator>gamotte</dc:creator>
    <dc:date>2020-09-29T14:49:41Z</dc:date>
    <item>
      <title>create a group of observations based on one observation</title>
      <link>https://communities.sas.com/t5/SAS-Programming/create-a-group-of-observations-based-on-one-observation/m-p/686902#M208486</link>
      <description>&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am trying to create a group of observations based on one observation.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;by using table 1 as an example,&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;obs&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;ID&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;A_date&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;B_date&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;C_date&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Action_A&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Action_B&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Action_C&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2000&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2003&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2005&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;AAA&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;positive B&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;negative C&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2015&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2015&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2016&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;B&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;negative B&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;negative C&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;3&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2001&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2002&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2002&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;AA&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;positive B&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;positive C&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;4&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2003&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2003&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2003&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;A&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;positive B&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;positive C&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;Introduction:&lt;/P&gt;&lt;P&gt;1.A_date is the date of Action_A action; B_date is the date of Action_B action, C_date is the date of Action_C action.&lt;/P&gt;&lt;P&gt;Requirement:&lt;/P&gt;&lt;P&gt;1.Value of Action_A collected from each row&amp;nbsp;in Table 1 keep same in a group of new rows in TableB.&lt;/P&gt;&lt;P&gt;By using obs1 in Table1 as an example, the value in Action_A is ‘AAA’, I expect to create three new rows in TableB1 based on this observation, and the Action_A in these three rows are ‘AAA’.&lt;/P&gt;&lt;P&gt;2.There are three different scenarios for Action_B and Action_C.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The first two scenarios based on whether the date of their action equal A_date.&lt;/P&gt;&lt;P&gt;First scenario. If A_date^=B_date^=C_date^=. (please see obs1 in Table1), I expect to create TableB1&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;TableB1&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;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;ID&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;edate&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Action_A&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Action_BorC&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2000&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;AAA&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;stable B&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;(A_date row)&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2003&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;AAA&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;positive B&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;(B_date row)&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2005&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;AAA&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;negative C&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;(C_date row)&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;A_date, B_date and C_date transpose as ‘edate’.&lt;/P&gt;&lt;P&gt;In A_date row, Action_BorC='stable B' as there is no action at the 'A_date' date.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Second scenario, if A_date=B_date^=C_date or A_date=C_date^=B_date (please see obs2 in Table1), I expect to create TableB2,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;TableB2&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;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;ID&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;edate&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Action_A&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Action_BorC&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2015&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;B&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;negative B&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;(A_date &amp;amp; B_date row)&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;1&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2016&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;B&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;negative C&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;(C_date row)&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;In this example, as A_date=B_date=2015, then Action_BorC=’negative B’, which is the value in Action_B variable in obs2 in Table1.&lt;/P&gt;&lt;P&gt;The third scenario based on whether the Action_B and Action_C happen on the same date&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Third scenario. If B_date=C_date (please see obs3 in Table1), I expect to create TableB3,&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;TableB3&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;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;ID&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;edate&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Action_A&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Action_BorC&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2001&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;AA&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;stable B&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;(A_date row)&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2002&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;AA&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;wrong&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;(B_date &amp;amp; C_date row)&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;The A_date row is processed as same as first scenario, as A_date^=B_date and A_date^=C_date.&lt;/P&gt;&lt;P&gt;I expect to get Action_BorC='wrong' in ‘B_date &amp;amp; C_date row’ as Action_B action and Action_C action happens on the same date is wrong.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;It this scenario, if A_date= B_date=C_date=2003 (please see obs4 in Table1) then I expect to have&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;TableB4&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;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;ID&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;edate&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Action_A&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;Action_BorC&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;P&gt;2&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;2003&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;A&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;&lt;STRONG&gt;wrong&lt;/STRONG&gt;&lt;/P&gt;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;(A_date &amp;amp; B_date &amp;amp; C_date row)&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;Could you please give me some suggestions about this?&lt;/P&gt;&lt;P&gt;Thanks in advance.&lt;/P&gt;&lt;PRE&gt;data table1;
	infile cards dsd  dlm=",";
	input
	ID $
	A_date :4.
	B_date :4.
	C_date :4.
	Action_A :$50.
	Action_B :$50.
	CAction_C :$50.

   ;
	cards;
1,2000,2003,2005,AAA,positive B,negative C
1,2015,2015,2016,B,negative B,negative C
2,2001,2002,2002,AA,positive B,positive C
2,2003,2003,2003,A,positive B,positive C
	;;;;
run;

&lt;/PRE&gt;</description>
      <pubDate>Sat, 26 Sep 2020 08:38:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/create-a-group-of-observations-based-on-one-observation/m-p/686902#M208486</guid>
      <dc:creator>Alexxxxxxx</dc:creator>
      <dc:date>2020-09-26T08:38:45Z</dc:date>
    </item>
    <item>
      <title>Re: create a group of observations based on one observation</title>
      <link>https://communities.sas.com/t5/SAS-Programming/create-a-group-of-observations-based-on-one-observation/m-p/687536#M208725</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Something like this ?&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;data B1 B2 B3 B4;
    set table1;
    length Action_BorC $50.;

    keep ID edate Action_A Action_BorC;
    if A_date=B_date=C_date then do;
        edate=A_date;
        Action_BorC="wrong";
        output B4;
    end;
    else if B_date=C_date then do;
        edate=A_date;
        Action_BorC="stable B";
        output B3;
        edate=B_date;
        Action_BorC="wrong";
        output B3;
    end;
    else if A_date=B_date or A_date=C_date then do;
        edate=B_date;
        Action_BorC=Action_B;
        output B2;
        edate=C_date;
        Action_BorC=Action_C;
        output B2;
    end;
    else do;
        edate=A_date;
        Action_BorC="stable B";
        output B1; 
        edate=B_date;
        Action_BorC=Action_B;
        output B1; 
        edate=C_date;
        Action_BorC=Action_C;
        output B1;
    end;
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>Tue, 29 Sep 2020 14:49:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/create-a-group-of-observations-based-on-one-observation/m-p/687536#M208725</guid>
      <dc:creator>gamotte</dc:creator>
      <dc:date>2020-09-29T14:49:41Z</dc:date>
    </item>
  </channel>
</rss>

