<?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: Shift Row one Record up and Set Every Recod after first Non-zero Value to Missing in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Shift-Row-one-Record-up-and-Set-Every-Recod-after-first-Non-zero/m-p/631669#M187172</link>
    <description>&lt;P&gt;The is a typical &amp;nbsp; &lt;EM&gt;&lt;STRONG&gt;set/by plus self-merge with offset&lt;/STRONG&gt;&lt;/EM&gt; task:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want (drop=onefound);
  retain onefound 'N';

  set have (keep=subjid);
  by subjid;
  if first.subjid then onefound='N';
  merge have
        have (firstobs=2 keep=cens rename=(cens=censt));

  if last.subjid=1 or onefound='Y' then call missing(censt);
  if censt=1 then onefound='Y';
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Thu, 12 Mar 2020 18:43:04 GMT</pubDate>
    <dc:creator>mkeintz</dc:creator>
    <dc:date>2020-03-12T18:43:04Z</dc:date>
    <item>
      <title>Shift Row one Record up and Set Every Recod after first Non-zero Value to Missing</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Shift-Row-one-Record-up-and-Set-Every-Recod-after-first-Non-zero/m-p/631624#M187162</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Please, I have a data set in longitudinal format as show below. I want to create additional column CENST in which the values of CENS is shift one row up and the values after first none-zero value is missing for each subject.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;data have;&lt;/P&gt;
&lt;P style="color: #333333; font-family: &amp;amp;quot; helevticaneue-light&amp;amp;quot;,&amp;amp;quot;helvetica neue&amp;amp;quot;,helvetica,arial,sans-serif; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px; padding: 0px; margin: 0px;"&gt;input subjid age cens censt;&lt;/P&gt;
&lt;P style="color: #333333; font-family: &amp;amp;quot; helevticaneue-light&amp;amp;quot;,&amp;amp;quot;helvetica neue&amp;amp;quot;,helvetica,arial,sans-serif; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px; padding: 0px; margin: 0px;"&gt;datalines;&lt;/P&gt;
&lt;TABLE&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="104"&gt;
&lt;P&gt;SUBIJD&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;age&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;cens&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="104"&gt;
&lt;P&gt;100-001&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;50&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;0&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="104"&gt;
&lt;P&gt;100-001&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;50&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;0&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="104"&gt;
&lt;P&gt;100-001&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;50&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;1&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="104"&gt;
&lt;P&gt;100-001&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;50&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;1&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="104"&gt;
&lt;P&gt;100-001&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;50&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;1&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="104"&gt;
&lt;P&gt;100-002&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;35&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;0&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="104"&gt;
&lt;P&gt;100-002&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;35&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;0&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="104"&gt;
&lt;P&gt;100-002&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;35&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;0&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="104"&gt;
&lt;P&gt;100-002&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;35&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;1&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="104"&gt;
&lt;P&gt;100-002&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;35&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;1&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="104"&gt;
&lt;P&gt;100-002&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;35&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;1&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;Data want;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;TABLE&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="104"&gt;
&lt;P&gt;SUBIJD&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;age&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;cens&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;censt&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="104"&gt;
&lt;P&gt;100-001&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;50&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;0&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;0&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="104"&gt;
&lt;P&gt;100-001&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;50&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;0&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;1&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="104"&gt;
&lt;P&gt;100-001&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;50&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;1&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;.&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="104"&gt;
&lt;P&gt;100-001&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;50&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;1&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;.&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="104"&gt;
&lt;P&gt;100-001&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;50&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;1&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;.&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="104"&gt;
&lt;P&gt;100-002&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;35&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;0&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;0&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="104"&gt;
&lt;P&gt;100-002&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;35&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;0&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;0&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="104"&gt;
&lt;P&gt;100-002&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;35&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;0&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;1&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="104"&gt;
&lt;P&gt;100-002&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;35&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;1&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;.&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="104"&gt;
&lt;P&gt;100-002&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;35&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;1&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;.&lt;/P&gt;
&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD width="104"&gt;
&lt;P&gt;100-002&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;35&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;1&lt;/P&gt;
&lt;/TD&gt;
&lt;TD width="104"&gt;
&lt;P&gt;.&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;;run;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 12 Mar 2020 16:08:06 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Shift-Row-one-Record-up-and-Set-Every-Recod-after-first-Non-zero/m-p/631624#M187162</guid>
      <dc:creator>SWEETSAS</dc:creator>
      <dc:date>2020-03-12T16:08:06Z</dc:date>
    </item>
    <item>
      <title>Re: Shift Row one Record up and Set Every Recod after first Non-zero Value to Missing</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Shift-Row-one-Record-up-and-Set-Every-Recod-after-first-Non-zero/m-p/631627#M187165</link>
      <description>&lt;P&gt;What if the first CENS for a given ID is already 1?&lt;/P&gt;</description>
      <pubDate>Thu, 12 Mar 2020 16:17:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Shift-Row-one-Record-up-and-Set-Every-Recod-after-first-Non-zero/m-p/631627#M187165</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2020-03-12T16:17:58Z</dc:date>
    </item>
    <item>
      <title>Re: Shift Row one Record up and Set Every Recod after first Non-zero Value to Missing</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Shift-Row-one-Record-up-and-Set-Every-Recod-after-first-Non-zero/m-p/631630#M187166</link>
      <description>&lt;P&gt;And please post WORKING data step code into a window opened with the "little running man"; only then will we be able to recreate your dataset without more work than a copy/paste and submit. Your code as posted will not run.&lt;/P&gt;</description>
      <pubDate>Thu, 12 Mar 2020 16:31:29 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Shift-Row-one-Record-up-and-Set-Every-Recod-after-first-Non-zero/m-p/631630#M187166</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2020-03-12T16:31:29Z</dc:date>
    </item>
    <item>
      <title>Re: Shift Row one Record up and Set Every Recod after first Non-zero Value to Missing</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Shift-Row-one-Record-up-and-Set-Every-Recod-after-first-Non-zero/m-p/631635#M187168</link>
      <description>&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;
data have;

input subjid $ age cens ;

datalines;
100-001

50

0

100-001

50

0

100-001

50

1

100-001

50

1

100-001

50

1

100-002

35

0

100-002

35

0

100-002

35

0

100-002

35

1

100-002

35

1

100-002

35

1
;

data want;
 do until(last.subjid);
  set have;
  by subjid cens notsorted;
  censt=cens;
  if not cens and last.cens then censt=1;
  else if cens then call missing(censt);
  output;
 end;
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 12 Mar 2020 16:47:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Shift-Row-one-Record-up-and-Set-Every-Recod-after-first-Non-zero/m-p/631635#M187168</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2020-03-12T16:47:30Z</dc:date>
    </item>
    <item>
      <title>Re: Shift Row one Record up and Set Every Recod after first Non-zero Value to Missing</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Shift-Row-one-Record-up-and-Set-Every-Recod-after-first-Non-zero/m-p/631669#M187172</link>
      <description>&lt;P&gt;The is a typical &amp;nbsp; &lt;EM&gt;&lt;STRONG&gt;set/by plus self-merge with offset&lt;/STRONG&gt;&lt;/EM&gt; task:&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want (drop=onefound);
  retain onefound 'N';

  set have (keep=subjid);
  by subjid;
  if first.subjid then onefound='N';
  merge have
        have (firstobs=2 keep=cens rename=(cens=censt));

  if last.subjid=1 or onefound='Y' then call missing(censt);
  if censt=1 then onefound='Y';
run;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 12 Mar 2020 18:43:04 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Shift-Row-one-Record-up-and-Set-Every-Recod-after-first-Non-zero/m-p/631669#M187172</guid>
      <dc:creator>mkeintz</dc:creator>
      <dc:date>2020-03-12T18:43:04Z</dc:date>
    </item>
    <item>
      <title>Re: Shift Row one Record up and Set Every Recod after first Non-zero Value to Missing</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Shift-Row-one-Record-up-and-Set-Every-Recod-after-first-Non-zero/m-p/632175#M187403</link>
      <description>&lt;P&gt;CENS remains as it. CENST is obtained from CENS by shifting one record upward and then declaring missing all 1s after the first 1. One can think about it this way. Within each ID, data represent values of measurement for different visit. CENS reflects the point an event occurred. By shifting CENS one record up, the analysis can use values of other variables just before the event occured because the patient is at risk prior to the event captured by CENS.&lt;/P&gt;</description>
      <pubDate>Sat, 14 Mar 2020 20:18:38 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Shift-Row-one-Record-up-and-Set-Every-Recod-after-first-Non-zero/m-p/632175#M187403</guid>
      <dc:creator>SWEETSAS</dc:creator>
      <dc:date>2020-03-14T20:18:38Z</dc:date>
    </item>
    <item>
      <title>Re: Shift Row one Record up and Set Every Recod after first Non-zero Value to Missing</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Shift-Row-one-Record-up-and-Set-Every-Recod-after-first-Non-zero/m-p/632176#M187404</link>
      <description>&lt;P&gt;Thanks!&lt;/P&gt;</description>
      <pubDate>Sat, 14 Mar 2020 20:21:53 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Shift-Row-one-Record-up-and-Set-Every-Recod-after-first-Non-zero/m-p/632176#M187404</guid>
      <dc:creator>SWEETSAS</dc:creator>
      <dc:date>2020-03-14T20:21:53Z</dc:date>
    </item>
  </channel>
</rss>

