<?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: Subtracting withing cluster. Unequal space and follow up Longitudinal data in SAS/IML Software and Matrix Computations</title>
    <link>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Subtracting-withing-cluster-Unequal-space-and-follow-up/m-p/147026#M1260</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I tried to modify your code to to both sum and diffrence but it does not work:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc iml;&lt;/P&gt;&lt;P&gt;use simulate1_&amp;amp;u;&lt;/P&gt;&lt;P&gt;read all&amp;nbsp; var{TIME OLF SURVIVAL1} into DM;&lt;/P&gt;&lt;P&gt;close;&lt;/P&gt;&lt;P&gt; SURVIVAL1 = DM[,3]; OLF = DM[,2]; TIME = DM[,1];&lt;/P&gt;&lt;P&gt; n = nrow(DM); &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;segment = J(nrow(DM),1,1); *print segment; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SS=J(nrow(time),1,1);&lt;/P&gt;&lt;P&gt;nobs = nrow(time); &lt;/P&gt;&lt;P&gt;Survival1&amp;nbsp; = J(nobs,1,.);&lt;/P&gt;&lt;P&gt;a = uniqueby(time , 1);&amp;nbsp;&amp;nbsp; /* a&lt;I&gt; = beginning of i_th category */&lt;/I&gt;&lt;/P&gt;&lt;P&gt;a = a // (nrow(time )+1); /* trick: append (n+1) to end of a */&lt;/P&gt;&lt;P&gt;do i = 1 to nrow(a)-1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; idx = a&lt;I&gt;:(a[i+1]-1);&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Find observations in i_th level */&lt;/I&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; SS[idx] = sum(survival1[idx]);&amp;nbsp; /* sum of time steps */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; SS[idx[1]] = survival1[idx[1]]; /* replace missing with 1st survival1 */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TT=J(nrow(survival1),1,1);&lt;/P&gt;&lt;P&gt;nobs = nrow(survival1); &lt;/P&gt;&lt;P&gt;Survival1&amp;nbsp; = J(nobs,1,.);&lt;/P&gt;&lt;P&gt;b = uniqueby(Survival1 , 1);&amp;nbsp;&amp;nbsp; /* b&lt;I&gt; = beginning of i_th category */&lt;/I&gt;&lt;/P&gt;&lt;P&gt;b = b // (nrow(Survival1 )+1); /* trick: append (n+1) to end of b */&lt;/P&gt;&lt;P&gt;do i = 1 to nrow(b)-1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; idx = b&lt;I&gt;:(b[i+1]-1);&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Find observations in i_th level */&lt;/I&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; TT[idx] = dif(time[idx]);&amp;nbsp; /* DIF of time steps */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; TT[idx[1]] = time[idx[1]]; /* replace missing with 1st time */&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;create kaplann_&amp;amp;u var{time OLF survival1 SS TT };&lt;/P&gt;&lt;P&gt;append;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 17 Sep 2014 00:09:52 GMT</pubDate>
    <dc:creator>desireatem</dc:creator>
    <dc:date>2014-09-17T00:09:52Z</dc:date>
    <item>
      <title>Subtracting withing cluster. Unequal space and follow up Longitudinal data</title>
      <link>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Subtracting-withing-cluster-Unequal-space-and-follow-up/m-p/147022#M1256</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello, I am trying to compute S using the data with variable N and time. See example below. My code below does not work:&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12.0pt; font-family: 'Helvetica','sans-serif'; color: black;"&gt;N&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; time&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; S &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12.0pt; font-family: 'Helvetica','sans-serif'; color: black;"&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; S[1]=time&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12.0pt; font-family: 'Helvetica','sans-serif'; color: black;"&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5-2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = time[i+1]-time&lt;I&gt;&lt;/I&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: black; font-size: 12.0pt; text-decoration: underline; font-family: 'Helvetica','sans-serif';"&gt;1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7-5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = &lt;/SPAN&gt;&lt;SPAN style="font-size: 12.0pt; font-family: 'Helvetica','sans-serif'; color: black;"&gt;time[i+1]-time&lt;I&gt;&lt;/I&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12.0pt; font-family: 'Helvetica','sans-serif'; color: black;"&gt;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5&amp;nbsp;&amp;nbsp;&amp;nbsp; S[1]=time&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12.0pt; font-family: 'Helvetica','sans-serif'; color: black;"&gt;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7-5&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #000000; font-family: Helvetica, sans-serif; font-size: 16px;"&gt;= time[i+1]-time&lt;I&gt;&lt;/I&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12.0pt; font-family: 'Helvetica','sans-serif'; color: black;"&gt;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 8-7&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #000000; font-family: Helvetica, sans-serif; font-size: 16px;"&gt;= time[i+1]-time&lt;I&gt;&lt;/I&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: black; font-size: 12.0pt; text-decoration: underline; font-family: 'Helvetica','sans-serif';"&gt;2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 10-8&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #000000; font-family: Helvetica, sans-serif; font-size: 16px;"&gt;= time[i+1]-time&lt;I&gt;&lt;/I&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12.0pt; font-family: 'Helvetica','sans-serif'; color: black;"&gt;3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12.0pt; font-family: 'Helvetica','sans-serif'; color: black;"&gt;3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 7-1&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12.0pt; font-family: 'Helvetica','sans-serif'; color: black;"&gt;3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9-7&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 12.0pt; font-family: 'Helvetica','sans-serif'; color: black;"&gt;3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 9-9&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;proc iml;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;use simulate1_&amp;amp;u;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;read all&amp;nbsp; var{N time } into DM;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;close;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt; time = DM[,&lt;/SPAN&gt;&lt;STRONG style="color: teal; background: white; font-size: 10.0pt; font-family: 'Courier New';"&gt;2&lt;/STRONG&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;]; N = DM[,&lt;/SPAN&gt;&lt;STRONG style="color: teal; background: white; font-size: 10.0pt; font-family: 'Courier New';"&gt;1&lt;/STRONG&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;];&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt; n = nrow(DM); &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;TT=J(nrow(time),&lt;/SPAN&gt;&lt;STRONG style="color: teal; background: white; font-size: 10.0pt; font-family: 'Courier New';"&gt;1&lt;/STRONG&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;,&lt;/SPAN&gt;&lt;STRONG style="color: teal; background: white; font-size: 10.0pt; font-family: 'Courier New';"&gt;1&lt;/STRONG&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;);&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;do i = &lt;/SPAN&gt;&lt;STRONG style="color: teal; background: white; font-size: 10.0pt; font-family: 'Courier New';"&gt;1&lt;/STRONG&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt; to &lt;/SPAN&gt;&lt;STRONG style="color: teal; background: white; font-size: 10.0pt; font-family: 'Courier New';"&gt;n&lt;/STRONG&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;if i=&lt;/SPAN&gt;&lt;STRONG style="color: teal; background: white; font-size: 10.0pt; font-family: 'Courier New';"&gt;1&lt;/STRONG&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt; then S&lt;I&gt;=time;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/I&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;else if 1 &amp;lt; i &amp;lt; =&lt;/SPAN&gt;&lt;STRONG style="color: teal; background: white; font-size: 10.0pt; font-family: 'Courier New';"&gt;n&lt;/STRONG&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;&amp;nbsp; then S&lt;I&gt;=time[i+&lt;/I&gt;&lt;/SPAN&gt;&lt;STRONG style="color: teal; background: white; font-size: 10.0pt; font-family: 'Courier New';"&gt;1&lt;/STRONG&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;]-time&lt;I&gt;;&lt;/I&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;end;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;create kaplann_&amp;amp;u var{time N S };&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="margin-bottom: .0001pt;"&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;append;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10.0pt; font-family: 'Courier New'; color: black; background: white;"&gt;quit;&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 16 Sep 2014 17:18:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Subtracting-withing-cluster-Unequal-space-and-follow-up/m-p/147022#M1256</guid>
      <dc:creator>desireatem</dc:creator>
      <dc:date>2014-09-16T17:18:09Z</dc:date>
    </item>
    <item>
      <title>Re: Subtracting withing cluster. Unequal space and follow up Longitudinal data</title>
      <link>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Subtracting-withing-cluster-Unequal-space-and-follow-up/m-p/147023#M1257</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;There are several ways to do this.&amp;nbsp; If the N variable is unsorted, you could use the &lt;A href="http://blogs.sas.com/content/iml/2011/11/01/the-unique-loc-trick-a-real-treat/"&gt;UNIQUE-LOC technique.&lt;/A&gt; I assume the data are sorted by N, in which case it is more efficient to use the &lt;A href="http://blogs.sas.com/content/iml/2011/11/07/an-efficient-alternative-to-the-unique-loc-technique/"&gt;UNIQUEBY technique.&lt;/A&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There is no need to loop over the observations to compute time&lt;I&gt;-time[i-1]. Instead you can use the &lt;A href="http://blogs.sas.com/content/iml/2012/05/02/the-dif-function/"&gt;DIF function&lt;/A&gt;.&lt;/I&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data a;&lt;BR /&gt;input N time @@;&lt;BR /&gt;datalines;&lt;BR /&gt;1 2 1 5 1 7 2 5 2 7 2 8 2 10 3 1 3 7 3 9 3 9&lt;BR /&gt;;&lt;/P&gt;&lt;P&gt;proc iml;&lt;BR /&gt;use A;&lt;BR /&gt;read all var{N time};&amp;nbsp; /* assume data sorted by N */&lt;BR /&gt;close;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;nobs = nrow(time); &lt;BR /&gt;S = J(nobs,1,.);&lt;BR /&gt;b = uniqueby(N, 1);&amp;nbsp;&amp;nbsp; /* b&lt;I&gt; = beginning of i_th category */&lt;BR /&gt;b = b // (nrow(N)+1); /* trick: append (n+1) to end of b */&lt;/I&gt;&lt;/P&gt;&lt;P&gt;do i = 1 to nrow(b)-1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp; idx = b&lt;I&gt;:(b[i+1]-1);&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Find observations in i_th level */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; S[idx] = dif(time[idx]);&amp;nbsp; /* DIF of time steps */&lt;BR /&gt;&amp;nbsp;&amp;nbsp; S[idx[1]] = time[idx[1]]; /* replace missing with 1st time */&lt;BR /&gt;end;&lt;/I&gt;&lt;/P&gt;&lt;P&gt;print S;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 16 Sep 2014 18:55:21 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Subtracting-withing-cluster-Unequal-space-and-follow-up/m-p/147023#M1257</guid>
      <dc:creator>Rick_SAS</dc:creator>
      <dc:date>2014-09-16T18:55:21Z</dc:date>
    </item>
    <item>
      <title>Re: Subtracting withing cluster. Unequal space and follow up Longitudinal data</title>
      <link>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Subtracting-withing-cluster-Unequal-space-and-follow-up/m-p/147024#M1258</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;My data is simulated data, so it not fixed. That was just an example. I think I can fix your code to work with my simulation.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 16 Sep 2014 19:06:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Subtracting-withing-cluster-Unequal-space-and-follow-up/m-p/147024#M1258</guid>
      <dc:creator>desireatem</dc:creator>
      <dc:date>2014-09-16T19:06:58Z</dc:date>
    </item>
    <item>
      <title>Re: Subtracting withing cluster. Unequal space and follow up Longitudinal data</title>
      <link>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Subtracting-withing-cluster-Unequal-space-and-follow-up/m-p/147025#M1259</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;If you read the articles, they describe how to handle other cases, such as unsorted data.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 16 Sep 2014 19:11:16 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Subtracting-withing-cluster-Unequal-space-and-follow-up/m-p/147025#M1259</guid>
      <dc:creator>Rick_SAS</dc:creator>
      <dc:date>2014-09-16T19:11:16Z</dc:date>
    </item>
    <item>
      <title>Re: Subtracting withing cluster. Unequal space and follow up Longitudinal data</title>
      <link>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Subtracting-withing-cluster-Unequal-space-and-follow-up/m-p/147026#M1260</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I tried to modify your code to to both sum and diffrence but it does not work:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc iml;&lt;/P&gt;&lt;P&gt;use simulate1_&amp;amp;u;&lt;/P&gt;&lt;P&gt;read all&amp;nbsp; var{TIME OLF SURVIVAL1} into DM;&lt;/P&gt;&lt;P&gt;close;&lt;/P&gt;&lt;P&gt; SURVIVAL1 = DM[,3]; OLF = DM[,2]; TIME = DM[,1];&lt;/P&gt;&lt;P&gt; n = nrow(DM); &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;segment = J(nrow(DM),1,1); *print segment; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SS=J(nrow(time),1,1);&lt;/P&gt;&lt;P&gt;nobs = nrow(time); &lt;/P&gt;&lt;P&gt;Survival1&amp;nbsp; = J(nobs,1,.);&lt;/P&gt;&lt;P&gt;a = uniqueby(time , 1);&amp;nbsp;&amp;nbsp; /* a&lt;I&gt; = beginning of i_th category */&lt;/I&gt;&lt;/P&gt;&lt;P&gt;a = a // (nrow(time )+1); /* trick: append (n+1) to end of a */&lt;/P&gt;&lt;P&gt;do i = 1 to nrow(a)-1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; idx = a&lt;I&gt;:(a[i+1]-1);&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Find observations in i_th level */&lt;/I&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; SS[idx] = sum(survival1[idx]);&amp;nbsp; /* sum of time steps */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; SS[idx[1]] = survival1[idx[1]]; /* replace missing with 1st survival1 */&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TT=J(nrow(survival1),1,1);&lt;/P&gt;&lt;P&gt;nobs = nrow(survival1); &lt;/P&gt;&lt;P&gt;Survival1&amp;nbsp; = J(nobs,1,.);&lt;/P&gt;&lt;P&gt;b = uniqueby(Survival1 , 1);&amp;nbsp;&amp;nbsp; /* b&lt;I&gt; = beginning of i_th category */&lt;/I&gt;&lt;/P&gt;&lt;P&gt;b = b // (nrow(Survival1 )+1); /* trick: append (n+1) to end of b */&lt;/P&gt;&lt;P&gt;do i = 1 to nrow(b)-1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; idx = b&lt;I&gt;:(b[i+1]-1);&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Find observations in i_th level */&lt;/I&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; TT[idx] = dif(time[idx]);&amp;nbsp; /* DIF of time steps */&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; TT[idx[1]] = time[idx[1]]; /* replace missing with 1st time */&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;create kaplann_&amp;amp;u var{time OLF survival1 SS TT };&lt;/P&gt;&lt;P&gt;append;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 17 Sep 2014 00:09:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Subtracting-withing-cluster-Unequal-space-and-follow-up/m-p/147026#M1260</guid>
      <dc:creator>desireatem</dc:creator>
      <dc:date>2014-09-17T00:09:52Z</dc:date>
    </item>
  </channel>
</rss>

