<?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: Data with different time points in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/Data-with-different-time-points/m-p/658024#M197198</link>
    <description>&lt;P&gt;You can self merge where selected rows by ID, renaming the columns as desired.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Example:&lt;/P&gt;
&lt;PRE&gt;data have;
id = '123456';
input 
Arrears Balance Instalemt CD Lifetime $ Lifetime_Period LTPR1    LTPR12;
datalines;
-17    7400.61    323    0    A    201911    201910    202004
-391   6380.61    323   -1    A    202001    201910    202004
-340   7400.61    323   -1    A    201910    201910    202004
-68    6057.61    323    0    C    202003    201910    202004
-384   6710.61    323   -1    A    201912    201910    202004
-68    6380.61    323    0    D    202002    201910    202004
259.64 6062.25    323    1    8    202004    201910    202004
;


data want;
  attrib
    id         length = $10
    arrears1   label = "Arrears @1"
    arrears12  label = "Arrears @12"
    balance1   label = "Balance @1"
    balance12  label = "Balance @12"
    cd1        label = "CD @1"
    cd12       label = "CD @12"
    lifetime1  label = "Lifetime @1"
    lifetime12 label = "Lifetime @12"
    lifetime_period1  label = "Lifetime Period @1"
    lifetime_period12 label = "Lifetime Period @12"
  ;
  merge
    have (where=(lifetime_period1=ltpr1)
      rename = (
        arrears   = arrears1
        balance   = balance1
        cd        = cd1
        lifetime  = lifetime1
        lifetime_period = lifetime_period1
      )
      drop = instalemt
    )
    have (where=(lifetime_period12=ltpr12)
      rename = (
        arrears   = arrears12
        balance   = balance12
        cd        = cd12
        lifetime  = lifetime12
        lifetime_period = lifetime_period12
      )
      drop = instalemt
    )
  ;
  by id ltpr1 ltpr12;
run;
&lt;/PRE&gt;</description>
    <pubDate>Fri, 12 Jun 2020 11:38:02 GMT</pubDate>
    <dc:creator>RichardDeVen</dc:creator>
    <dc:date>2020-06-12T11:38:02Z</dc:date>
    <item>
      <title>Data with different time points</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Data-with-different-time-points/m-p/658010#M197190</link>
      <description>&lt;P&gt;Hi All,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Please assist me. I am trying to get all variables only at 2 points, at the earliest date (LTPR1) and at the latest date (LTPR2). I have millions of records with different starting and end dates.&lt;/P&gt;
&lt;P&gt;Current data:&lt;/P&gt;
&lt;TABLE width="480"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="52"&gt;Arrears&lt;/TD&gt;
&lt;TD width="56"&gt;Balance&lt;/TD&gt;
&lt;TD width="66"&gt;Instalemt&lt;/TD&gt;
&lt;TD width="24"&gt;CD&lt;/TD&gt;
&lt;TD width="64"&gt;Lifetime&lt;/TD&gt;
&lt;TD width="104"&gt;Lifetime Period&lt;/TD&gt;
&lt;TD width="64"&gt;LTPR1&lt;/TD&gt;
&lt;TD width="50"&gt;LTPR12&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;-17&lt;/TD&gt;
&lt;TD&gt;7400.61&lt;/TD&gt;
&lt;TD&gt;323&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;201911&lt;/TD&gt;
&lt;TD&gt;201910&lt;/TD&gt;
&lt;TD&gt;202004&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;-391&lt;/TD&gt;
&lt;TD&gt;6380.61&lt;/TD&gt;
&lt;TD&gt;323&lt;/TD&gt;
&lt;TD&gt;-1&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;202001&lt;/TD&gt;
&lt;TD&gt;201910&lt;/TD&gt;
&lt;TD&gt;202004&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;-340&lt;/TD&gt;
&lt;TD&gt;7400.61&lt;/TD&gt;
&lt;TD&gt;323&lt;/TD&gt;
&lt;TD&gt;-1&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;201910&lt;/TD&gt;
&lt;TD&gt;201910&lt;/TD&gt;
&lt;TD&gt;202004&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;-68&lt;/TD&gt;
&lt;TD&gt;6057.61&lt;/TD&gt;
&lt;TD&gt;323&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;C&lt;/TD&gt;
&lt;TD&gt;202003&lt;/TD&gt;
&lt;TD&gt;201910&lt;/TD&gt;
&lt;TD&gt;202004&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;-384&lt;/TD&gt;
&lt;TD&gt;6710.61&lt;/TD&gt;
&lt;TD&gt;323&lt;/TD&gt;
&lt;TD&gt;-1&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;201912&lt;/TD&gt;
&lt;TD&gt;201910&lt;/TD&gt;
&lt;TD&gt;202004&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;-68&lt;/TD&gt;
&lt;TD&gt;6380.61&lt;/TD&gt;
&lt;TD&gt;323&lt;/TD&gt;
&lt;TD&gt;0&lt;/TD&gt;
&lt;TD&gt;D&lt;/TD&gt;
&lt;TD&gt;202002&lt;/TD&gt;
&lt;TD&gt;201910&lt;/TD&gt;
&lt;TD&gt;202004&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;259.64&lt;/TD&gt;
&lt;TD&gt;6062.25&lt;/TD&gt;
&lt;TD&gt;323&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;8&lt;/TD&gt;
&lt;TD&gt;202004&lt;/TD&gt;
&lt;TD&gt;201910&lt;/TD&gt;
&lt;TD&gt;202004&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Desired output:&lt;/P&gt;
&lt;TABLE width="1130"&gt;
&lt;TBODY&gt;
&lt;TR&gt;
&lt;TD width="84"&gt;ID_Number&lt;/TD&gt;
&lt;TD width="75"&gt;Arrears @1&lt;/TD&gt;
&lt;TD width="82"&gt;Arrears &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/70859"&gt;@12&lt;/a&gt;&lt;/TD&gt;
&lt;TD width="88"&gt;Balance @ 1&lt;/TD&gt;
&lt;TD width="88"&gt;Balance @ 12&lt;/TD&gt;
&lt;TD width="59"&gt;CD @ 1&lt;/TD&gt;
&lt;TD width="79"&gt;CD @ 12&lt;/TD&gt;
&lt;TD width="85"&gt;Lifetime @ 1&lt;/TD&gt;
&lt;TD width="93"&gt;Lifetime @ 12&lt;/TD&gt;
&lt;TD width="131"&gt;Lifetime Period @ 1&lt;/TD&gt;
&lt;TD width="138"&gt;Lifetime Period @ 12&lt;/TD&gt;
&lt;TD width="64"&gt;LTPR1&lt;/TD&gt;
&lt;TD width="64"&gt;LTPR12&lt;/TD&gt;
&lt;/TR&gt;
&lt;TR&gt;
&lt;TD&gt;12345678910&lt;/TD&gt;
&lt;TD&gt;-340&lt;/TD&gt;
&lt;TD&gt;259.64&lt;/TD&gt;
&lt;TD&gt;7400.61&lt;/TD&gt;
&lt;TD&gt;6062.25&lt;/TD&gt;
&lt;TD&gt;-1&lt;/TD&gt;
&lt;TD&gt;1&lt;/TD&gt;
&lt;TD&gt;A&lt;/TD&gt;
&lt;TD&gt;8&lt;/TD&gt;
&lt;TD&gt;201910&lt;/TD&gt;
&lt;TD&gt;202004&lt;/TD&gt;
&lt;TD&gt;201910&lt;/TD&gt;
&lt;TD&gt;202004&lt;/TD&gt;
&lt;/TR&gt;
&lt;/TBODY&gt;
&lt;/TABLE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This is the code I currently have:&lt;/P&gt;
&lt;P&gt;proc sql;&lt;BR /&gt;create table Sub2 &lt;BR /&gt;as select *, min('Lifetime Payment Rating Finmonth'n) as LTPR1, max('Lifetime Payment Rating Finmonth'n) AS LTPR12&lt;BR /&gt;from Variables &lt;BR /&gt;where Sub = 2 and Income_Doc_Type is not null &lt;BR /&gt;group by ID_Number&lt;BR /&gt;having Nett_Monthly_Income = max(Nett_Monthly_Income) &lt;BR /&gt;and ID_Number=max(ID_Number); &lt;BR /&gt;run;&lt;/P&gt;</description>
      <pubDate>Fri, 12 Jun 2020 11:06:32 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Data-with-different-time-points/m-p/658010#M197190</guid>
      <dc:creator>MagD</dc:creator>
      <dc:date>2020-06-12T11:06:32Z</dc:date>
    </item>
    <item>
      <title>Re: Data with different time points</title>
      <link>https://communities.sas.com/t5/SAS-Programming/Data-with-different-time-points/m-p/658024#M197198</link>
      <description>&lt;P&gt;You can self merge where selected rows by ID, renaming the columns as desired.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Example:&lt;/P&gt;
&lt;PRE&gt;data have;
id = '123456';
input 
Arrears Balance Instalemt CD Lifetime $ Lifetime_Period LTPR1    LTPR12;
datalines;
-17    7400.61    323    0    A    201911    201910    202004
-391   6380.61    323   -1    A    202001    201910    202004
-340   7400.61    323   -1    A    201910    201910    202004
-68    6057.61    323    0    C    202003    201910    202004
-384   6710.61    323   -1    A    201912    201910    202004
-68    6380.61    323    0    D    202002    201910    202004
259.64 6062.25    323    1    8    202004    201910    202004
;


data want;
  attrib
    id         length = $10
    arrears1   label = "Arrears @1"
    arrears12  label = "Arrears @12"
    balance1   label = "Balance @1"
    balance12  label = "Balance @12"
    cd1        label = "CD @1"
    cd12       label = "CD @12"
    lifetime1  label = "Lifetime @1"
    lifetime12 label = "Lifetime @12"
    lifetime_period1  label = "Lifetime Period @1"
    lifetime_period12 label = "Lifetime Period @12"
  ;
  merge
    have (where=(lifetime_period1=ltpr1)
      rename = (
        arrears   = arrears1
        balance   = balance1
        cd        = cd1
        lifetime  = lifetime1
        lifetime_period = lifetime_period1
      )
      drop = instalemt
    )
    have (where=(lifetime_period12=ltpr12)
      rename = (
        arrears   = arrears12
        balance   = balance12
        cd        = cd12
        lifetime  = lifetime12
        lifetime_period = lifetime_period12
      )
      drop = instalemt
    )
  ;
  by id ltpr1 ltpr12;
run;
&lt;/PRE&gt;</description>
      <pubDate>Fri, 12 Jun 2020 11:38:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/Data-with-different-time-points/m-p/658024#M197198</guid>
      <dc:creator>RichardDeVen</dc:creator>
      <dc:date>2020-06-12T11:38:02Z</dc:date>
    </item>
  </channel>
</rss>

