<?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: How to construct earning string in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/How-to-construct-earning-string/m-p/777524#M247382</link>
    <description>&lt;P&gt;Thank you so much, Patrick. Your code worked well. I greatly appreciate it. Have a good weekend.&lt;/P&gt;&lt;P&gt;Joon&lt;/P&gt;</description>
    <pubDate>Sat, 30 Oct 2021 20:24:49 GMT</pubDate>
    <dc:creator>joon1</dc:creator>
    <dc:date>2021-10-30T20:24:49Z</dc:date>
    <item>
      <title>How to construct earning string</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-construct-earning-string/m-p/777435#M247334</link>
      <description>&lt;P&gt;Dear Madam/Sir,&lt;/P&gt;&lt;P&gt;I would like to construct quarterly earnings stream, but fail to locate related codes.&lt;/P&gt;&lt;P&gt;The data structure is below. How can I capture instances where 'qearning' is increased for four consecutive quarters (FQTR)?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV class=""&gt;&lt;DIV&gt;&lt;DIV align="center"&gt;Obs GVKEY FYEARQ FQTR qearning1234567891011121314 &lt;TABLE cellspacing="0" cellpadding="5"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;001004&lt;/TD&gt;&lt;TD&gt;1994&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;0.120&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;001004&lt;/TD&gt;&lt;TD&gt;1994&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;0.147&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;001004&lt;/TD&gt;&lt;TD&gt;1995&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;0.133&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;001004&lt;/TD&gt;&lt;TD&gt;1995&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;0.153&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;001004&lt;/TD&gt;&lt;TD&gt;1995&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;0.173&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;001004&lt;/TD&gt;&lt;TD&gt;1995&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;0.207&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;001004&lt;/TD&gt;&lt;TD&gt;1996&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;0.200&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;001004&lt;/TD&gt;&lt;TD&gt;1996&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;0.213&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;001004&lt;/TD&gt;&lt;TD&gt;1996&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;0.240&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;001004&lt;/TD&gt;&lt;TD&gt;1996&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;0.260&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;001004&lt;/TD&gt;&lt;TD&gt;1997&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;0.267&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;001004&lt;/TD&gt;&lt;TD&gt;1997&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;0.307&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;001004&lt;/TD&gt;&lt;TD&gt;1997&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;0.340&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;001004&lt;/TD&gt;&lt;TD&gt;1997&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;0.380&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Any programming advice will be highly appreciated.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Sincerely,&lt;/P&gt;&lt;P&gt;Joon&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 30 Oct 2021 00:11:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-construct-earning-string/m-p/777435#M247334</guid>
      <dc:creator>joon1</dc:creator>
      <dc:date>2021-10-30T00:11:56Z</dc:date>
    </item>
    <item>
      <title>Re: How to construct earning string</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-construct-earning-string/m-p/777437#M247336</link>
      <description>&lt;P&gt;Something like below should work.&lt;/P&gt;
&lt;P&gt;I've used your year and quarter column to derive a SAS Date value for the first day of the quarter. Using SAS Date values has many advantages like in below code to implement logic to deal with cases where you have gaps in your data (missing quarter).&lt;/P&gt;
&lt;P&gt;Column consecutive_growth_cnt tells you in each row how many previous quarters had a lower earning.&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data inter;
  set have;
  format reporting_dt yymon7.;
  /* create column reporting_dt storing a SAS Date value first day of quarter */
  /*  derived from year and quarter                                           */
  reporting_dt=mdy(fqtr*3-2,1,fyearq);
run;

proc sort data=inter;
  by gvkey reporting_dt;
run;

data want;
  set inter;
  by gvkey reporting_dt;

  lag_qearning=lag(qearning);
  lag_reporting_dt=lag(reporting_dt);

  /* start of a new gvkey */
  if first.gvkey then consecutive_growth_cnt=0;
  /* for cases where there aren't consecutive quarters in the data */
  else if intck('quarter',lag_reporting_dt,reporting_dt) ne 1 then consecutive_growth_cnt=0;
  /* earning greater than previous quarter */
  else if qearning&amp;gt;lag_qearning then consecutive_growth_cnt+1;
  else consecutive_growth_cnt=0;

/*  format lag_reporting_dt yymon7.;*/
  drop lag_qearning lag_reporting_dt;
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Patrick_0-1635556164013.png" style="width: 554px;"&gt;&lt;img src="https://communities.sas.com/t5/image/serverpage/image-id/65250i1E459FB55DC0CB34/image-dimensions/554x364?v=v2" width="554" height="364" role="button" title="Patrick_0-1635556164013.png" alt="Patrick_0-1635556164013.png" /&gt;&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Sat, 30 Oct 2021 01:10:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-construct-earning-string/m-p/777437#M247336</guid>
      <dc:creator>Patrick</dc:creator>
      <dc:date>2021-10-30T01:10:13Z</dc:date>
    </item>
    <item>
      <title>Re: How to construct earning string</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-construct-earning-string/m-p/777524#M247382</link>
      <description>&lt;P&gt;Thank you so much, Patrick. Your code worked well. I greatly appreciate it. Have a good weekend.&lt;/P&gt;&lt;P&gt;Joon&lt;/P&gt;</description>
      <pubDate>Sat, 30 Oct 2021 20:24:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-construct-earning-string/m-p/777524#M247382</guid>
      <dc:creator>joon1</dc:creator>
      <dc:date>2021-10-30T20:24:49Z</dc:date>
    </item>
  </channel>
</rss>

