<?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 same trade times - large data sets in SAS Procedures</title>
    <link>https://communities.sas.com/t5/SAS-Procedures/same-trade-times-large-data-sets/m-p/43731#M11459</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;thanks I will try this and report back&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 26 Mar 2012 21:04:11 GMT</pubDate>
    <dc:creator>skipper</dc:creator>
    <dc:date>2012-03-26T21:04:11Z</dc:date>
    <item>
      <title>same trade times - large data sets</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/same-trade-times-large-data-sets/m-p/43719#M11447</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P style="background-color: #eef4f9; font-size: 12px; font-family: Arial, Helvetica, sans-serif;"&gt;The Datasets here are for example only, my real datasets are for up to 1.5 million observations.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="background-color: #eef4f9; font-size: 12px; font-family: Arial, Helvetica, sans-serif;"&gt;I have 2 products 'A' and 'B' trading, trade_time and trade_price are recorded variables, so I have&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="background-color: #eef4f9; font-size: 12px; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;SPAN style="font-size: 8pt; font-family: 'courier new', courier; color: #0000ff;"&gt;DATA product_A;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #eef4f9; font-size: 12px; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;SPAN style="font-size: 8pt; font-family: 'courier new', courier; color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp; INPUT A_datetime datetime16. A_price $;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #eef4f9; font-size: 12px; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;SPAN style="font-size: 8pt; font-family: 'courier new', courier; color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp; DATALINES;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #eef4f9; font-size: 12px; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;SPAN style="font-size: 8pt; font-family: 'courier new', courier; color: #0000ff;"&gt;22JUN11:00:00:04&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.7&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #eef4f9; font-size: 12px; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;SPAN style="font-size: 8pt; font-family: 'courier new', courier; color: #0000ff;"&gt;22JUN11:00:00:08 1.9&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #eef4f9; font-size: 12px; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;SPAN style="font-size: 8pt; font-family: 'courier new', courier; color: #0000ff;"&gt;22JUN11:00:00:10 2.3&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #eef4f9; font-size: 12px; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;SPAN style="font-size: 8pt; font-family: 'courier new', courier; color: #0000ff;"&gt;22JUN11:00:05:12 2.9&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #eef4f9; font-size: 12px; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;SPAN style="font-size: 8pt; font-family: 'courier new', courier; color: #0000ff;"&gt;22JUN11:00:05:36 3.5&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #eef4f9; font-size: 12px; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;SPAN style="font-size: 8pt; font-family: 'courier new', courier; color: #0000ff;"&gt;22JUN11:00:32:45 3.2&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #eef4f9; font-size: 12px; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;SPAN style="font-size: 8pt; font-family: 'courier new', courier; color: #0000ff;"&gt;22JUN11:00:39:01 3.1&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #eef4f9; font-size: 12px; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;SPAN style="font-size: 8pt; font-family: 'courier new', courier; color: #0000ff;"&gt;22JUN11:00:39:03 2.7&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #eef4f9; font-size: 12px; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;SPAN style="font-size: 8pt; font-family: 'courier new', courier; color: #0000ff;"&gt;22JUN11:01:10:12 2.6&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #eef4f9; font-size: 12px; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;SPAN style="font-size: 8pt; font-family: 'courier new', courier; color: #0000ff;"&gt;22JUN11:07:22:10 2.1&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #eef4f9; font-size: 12px; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;SPAN style="font-size: 8pt; font-family: 'courier new', courier; color: #0000ff;"&gt;26JUN11:12:42:17 3.4&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #eef4f9; font-size: 12px; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;SPAN style="font-size: 8pt; font-family: 'courier new', courier; color: #0000ff;"&gt;26JUN11:12:42:18 3.6&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #eef4f9; font-size: 12px; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;SPAN style="font-size: 8pt; font-family: 'courier new', courier; color: #0000ff;"&gt;26JUN11:12:42:21 3.9&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #eef4f9; font-size: 12px; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;SPAN style="font-size: 8pt; font-family: 'courier new', courier; color: #0000ff;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #eef4f9; font-size: 12px; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;SPAN style="font-size: 8pt; font-family: 'courier new', courier; color: #0000ff;"&gt;RUN;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="background-color: #eef4f9; font-size: 12px; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;SPAN style="font-size: 8pt; font-family: 'courier new', courier; color: #0000ff;"&gt;DATA product_B;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #eef4f9; font-size: 12px; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;SPAN style="font-size: 8pt; font-family: 'courier new', courier; color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp; INPUT B_datetime datetime16. B_price $;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #eef4f9; font-size: 12px; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;SPAN style="font-size: 8pt; font-family: 'courier new', courier; color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp; DATALINES;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #eef4f9; font-size: 12px; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;SPAN style="font-size: 8pt; font-family: 'courier new', courier; color: #0000ff;"&gt;22JUN11:00:00:09&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.02&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #eef4f9; font-size: 12px; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;SPAN style="font-size: 8pt; font-family: 'courier new', courier; color: #0000ff;"&gt;22JUN11:00:05:34&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.07&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #eef4f9; font-size: 12px; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;SPAN style="font-size: 8pt; font-family: 'courier new', courier; color: #0000ff;"&gt;22JUN11:00:39:05&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.04&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #eef4f9; font-size: 12px; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;SPAN style="font-size: 8pt; font-family: 'courier new', courier; color: #0000ff;"&gt;26JUN11:12:42:20&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.09&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #eef4f9; font-size: 12px; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;SPAN style="font-size: 8pt; font-family: 'courier new', courier; color: #0000ff;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #eef4f9; font-size: 12px; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;SPAN style="font-size: 8pt; font-family: 'courier new', courier; color: #0000ff;"&gt;RUN;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="background-color: #eef4f9; font-size: 12px; font-family: Arial, Helvetica, sans-serif;"&gt;Each time 'B' trades, i want to know what 'A' traded at, but only if 'A' traded within the last 5 seconds looking backward.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="background-color: #eef4f9; font-size: 12px; font-family: Arial, Helvetica, sans-serif;"&gt;(i.e if B trades and there are no records in the last 5 seconds for A, then discard, even if 'A' trades one second afterwards, - looking backwards in time only)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="background-color: #eef4f9; font-size: 12px; font-family: Arial, Helvetica, sans-serif;"&gt;So I want to create a new dataset called 'same_trade_times'. which would have the following data,...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="background-color: #eef4f9; font-size: 12px; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;SPAN style="font-size: 8pt; font-family: 'courier new', courier; color: #0000ff;"&gt;DATA same_trade_times;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #eef4f9; font-size: 12px; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;SPAN style="font-size: 8pt; font-family: 'courier new', courier; color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp; INPUT B_datetime datetime16.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #eef4f9; font-size: 12px; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;SPAN style="font-size: 8pt; font-family: 'courier new', courier; color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; B_price $&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #eef4f9; font-size: 12px; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;SPAN style="font-size: 8pt; font-family: 'courier new', courier; color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A_datetime $&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #eef4f9; font-size: 12px; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;SPAN style="font-size: 8pt; font-family: 'courier new', courier; color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; A_price $&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #eef4f9; font-size: 12px; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;SPAN style="font-size: 8pt; font-family: 'courier new', courier; color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #eef4f9; font-size: 12px; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;SPAN style="font-size: 8pt; font-family: 'courier new', courier; color: #0000ff;"&gt;&amp;nbsp;&amp;nbsp; DATALINES;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #eef4f9; font-size: 12px; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;SPAN style="font-size: 8pt; font-family: 'courier new', courier; color: #0000ff;"&gt;22JUN11:00:00:09&amp;nbsp;&amp;nbsp; 0.02&amp;nbsp;&amp;nbsp; 22JUN11:00:00:08&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.9&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #eef4f9; font-size: 12px; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;SPAN style="font-size: 8pt; font-family: 'courier new', courier; color: #0000ff;"&gt;22JUN11:00:39:05&amp;nbsp;&amp;nbsp; 0.04&amp;nbsp;&amp;nbsp; 22JUN11:00:39:03&amp;nbsp;&amp;nbsp;&amp;nbsp; 2.7&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #eef4f9; font-size: 12px; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;SPAN style="font-size: 8pt; font-family: 'courier new', courier; color: #0000ff;"&gt;26JUN11:00:42:20&amp;nbsp;&amp;nbsp; 0.09&amp;nbsp;&amp;nbsp; 26JUN11:12:42:18&amp;nbsp;&amp;nbsp;&amp;nbsp; 3.6&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #eef4f9; font-size: 12px; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;SPAN style="font-size: 8pt; font-family: 'courier new', courier; color: #0000ff;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #eef4f9; font-size: 12px; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;SPAN style="font-size: 8pt; font-family: 'courier new', courier; color: #0000ff;"&gt;RUN;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="background-color: #eef4f9; font-size: 12px; font-family: Arial, Helvetica, sans-serif;"&gt;any ideas on this one?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 26 Mar 2012 19:04:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/same-trade-times-large-data-sets/m-p/43719#M11447</guid>
      <dc:creator>skipper</dc:creator>
      <dc:date>2012-03-26T19:04:07Z</dc:date>
    </item>
    <item>
      <title>Re: same trade times - large data sets</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/same-trade-times-large-data-sets/m-p/43720#M11448</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Use MERGE and RETAIN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE __default_attr="plain" __jive_macro_name="code" class="jive_text_macro jive_macro_code"&gt;&lt;P&gt;data want ;&lt;/P&gt;&lt;P&gt;&amp;nbsp; merge A(in=ina rename=(a_datetime=datetime))&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; B(in=inb rename=(b_datetime=datetime))&lt;/P&gt;&lt;P&gt;&amp;nbsp; ;&lt;/P&gt;&lt;P&gt;&amp;nbsp; by datetime;&lt;/P&gt;&lt;P&gt;&amp;nbsp; retain a_datetime b_datetime prev_a;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if ina then a_datetime=datetime;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if inb then b_datetime=datetime;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if ina then prev_a = a;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if inb and&amp;nbsp; 0 &amp;lt;= (b_datetime - a_datetime) &amp;lt;= 5 then output;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 26 Mar 2012 19:18:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/same-trade-times-large-data-sets/m-p/43720#M11448</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2012-03-26T19:18:27Z</dc:date>
    </item>
    <item>
      <title>Re: same trade times - large data sets</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/same-trade-times-large-data-sets/m-p/43721#M11449</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;is that an 'in' or an 'if' at the start of the third line up from the bottom?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 26 Mar 2012 19:37:49 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/same-trade-times-large-data-sets/m-p/43721#M11449</guid>
      <dc:creator>skipper</dc:creator>
      <dc:date>2012-03-26T19:37:49Z</dc:date>
    </item>
    <item>
      <title>Re: same trade times - large data sets</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/same-trade-times-large-data-sets/m-p/43722#M11450</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;IF of course.&amp;nbsp; I have updated the previous post to fix the typo.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 26 Mar 2012 19:40:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/same-trade-times-large-data-sets/m-p/43722#M11450</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2012-03-26T19:40:22Z</dc:date>
    </item>
    <item>
      <title>Re: same trade times - large data sets</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/same-trade-times-large-data-sets/m-p/43723#M11451</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Tom,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm not sure you can rally MERGE these two.&amp;nbsp; The DATETIME values may not form an exact match.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I don't have the time to do this, but here is an approach (bare bones outline).&amp;nbsp; It seems a little strange at first to create 5-second intervals based on the Product_A data set, but logically it seems sound.&amp;nbsp; Of course, when it comes to setting up a format with 1M+ levels on a PC, there are no guarantees as to how much time it will take.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Use Product_A data to create a CNTLIN data set for PROC FORMAT.&amp;nbsp; The ranges would be from lag(a_datetime) to the MIN of either a_datetime or lag(a_datetime)+5.&amp;nbsp; The CNTLIN data set would need to use an extra variable to indicate whether the endpoint of the range was either included (if using lag(a_datetime)+5 as the endpoint) or excluded (if using a_datetime as the endpoint).&amp;nbsp; The format would use concatenated a_datetime + A_Price as the LABEL.&amp;nbsp; Attention would be needed to properly create the very final range, and possibly to set up the Other= definition when there is no match.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Applying the format would be easy:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data same_time_trades;&lt;/P&gt;&lt;P&gt;set product_b;&lt;/P&gt;&lt;P&gt;A_match = put(b_datetime, fmtname.);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Then split A_match into the datetime and the price.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 26 Mar 2012 19:49:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/same-trade-times-large-data-sets/m-p/43723#M11451</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2012-03-26T19:49:14Z</dc:date>
    </item>
    <item>
      <title>Re: same trade times - large data sets</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/same-trade-times-large-data-sets/m-p/43724#M11452</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;There is no need to match the datetime values.&amp;nbsp; The RETAIN statements take care of that.&amp;nbsp; The same logic should work using SET with a BY statment to interleave the records.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 26 Mar 2012 20:03:00 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/same-trade-times-large-data-sets/m-p/43724#M11452</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2012-03-26T20:03:00Z</dc:date>
    </item>
    <item>
      <title>Re: same trade times - large data sets</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/same-trade-times-large-data-sets/m-p/43725#M11453</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt; I ran Tom's Code with the sample data OP provided. &lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: navy; font-size: 10pt; background-color: white; font-family: 'Courier New';"&gt;DATA&lt;/STRONG&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; A;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN style="background-color: white; font-family: 'Courier New'; color: blue; font-size: 10pt;"&gt;INPUT&lt;/SPAN&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; A_datetime &lt;/SPAN&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: teal; font-size: 10pt;"&gt;datetime16.&lt;/SPAN&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; A_price $;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN style="background-color: white; font-family: 'Courier New'; color: blue; font-size: 10pt;"&gt;DATALINES&lt;/SPAN&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffc0; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;22JUN11:00:00:04 1.7&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffc0; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;22JUN11:00:00:08 1.9&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffc0; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;22JUN11:00:00:10 2.3&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffc0; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;22JUN11:00:05:12 2.9&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffc0; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;22JUN11:00:05:36 3.5&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffc0; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;22JUN11:00:32:45 3.2&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffc0; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;22JUN11:00:39:01 3.1&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffc0; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;22JUN11:00:39:03 2.7&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffc0; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;22JUN11:01:10:12 2.6&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffc0; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;22JUN11:07:22:10 2.1&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffc0; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;26JUN11:12:42:17 3.4&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffc0; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;26JUN11:12:42:18 3.6&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffc0; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;26JUN11:12:42:21 3.9&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: navy; font-size: 10pt; background-color: white; font-family: 'Courier New';"&gt;RUN&lt;/STRONG&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: navy; font-size: 10pt; background-color: white; font-family: 'Courier New';"&gt;DATA&lt;/STRONG&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; B;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN style="background-color: white; font-family: 'Courier New'; color: blue; font-size: 10pt;"&gt;INPUT&lt;/SPAN&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; B_datetime &lt;/SPAN&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: teal; font-size: 10pt;"&gt;datetime16.&lt;/SPAN&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; B_price $;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;SPAN style="background-color: white; font-family: 'Courier New'; color: blue; font-size: 10pt;"&gt;DATALINES&lt;/SPAN&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffc0; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;22JUN11:00:00:09&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.02&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffc0; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;22JUN11:00:05:34&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.07&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffc0; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;22JUN11:00:39:05&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.04&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: #ffffc0; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;26JUN11:12:42:20&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.09&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: navy; font-size: 10pt; background-color: white; font-family: 'Courier New';"&gt;run&lt;/STRONG&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: navy; font-size: 10pt; background-color: white; font-family: 'Courier New';"&gt;data&lt;/STRONG&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; want ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;SPAN style="background-color: white; font-family: 'Courier New'; color: blue; font-size: 10pt;"&gt;merge&lt;/SPAN&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; A(&lt;/SPAN&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: blue; font-size: 10pt;"&gt;in&lt;/SPAN&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;=ina rename=(a_datetime=datetime))&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; B(&lt;/SPAN&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: blue; font-size: 10pt;"&gt;in&lt;/SPAN&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;=inb rename=(b_datetime=datetime))&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;&amp;nbsp; ;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;SPAN style="background-color: white; font-family: 'Courier New'; color: blue; font-size: 10pt;"&gt;by&lt;/SPAN&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; datetime;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;SPAN style="background-color: white; font-family: 'Courier New'; color: blue; font-size: 10pt;"&gt;retain&lt;/SPAN&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; a_datetime b_datetime prev_a;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;SPAN style="background-color: white; font-family: 'Courier New'; color: blue; font-size: 10pt;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; ina &lt;/SPAN&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: blue; font-size: 10pt;"&gt;then&lt;/SPAN&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; a_datetime=datetime;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;SPAN style="background-color: white; font-family: 'Courier New'; color: blue; font-size: 10pt;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; inb &lt;/SPAN&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: blue; font-size: 10pt;"&gt;then&lt;/SPAN&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; b_datetime=datetime;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;SPAN style="background-color: white; font-family: 'Courier New'; color: blue; font-size: 10pt;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; ina &lt;/SPAN&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: blue; font-size: 10pt;"&gt;then&lt;/SPAN&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; prev_a = a_price;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;SPAN style="background-color: white; font-family: 'Courier New'; color: blue; font-size: 10pt;"&gt;if&lt;/SPAN&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; inb and&amp;nbsp; &lt;/SPAN&gt;&lt;STRONG style="color: teal; font-size: 10pt; background-color: white; font-family: 'Courier New';"&gt;0&lt;/STRONG&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; &amp;lt;= (b_datetime - a_datetime) &amp;lt;= &lt;/SPAN&gt;&lt;STRONG style="color: teal; font-size: 10pt; background-color: white; font-family: 'Courier New';"&gt;5&lt;/STRONG&gt; &lt;SPAN style="background-color: white; font-family: 'Courier New'; color: blue; font-size: 10pt;"&gt;then&lt;/SPAN&gt; &lt;SPAN style="background-color: white; font-family: 'Courier New'; color: blue; font-size: 10pt;"&gt;output&lt;/SPAN&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;SPAN style="background-color: white; font-family: 'Courier New'; color: blue; font-size: 10pt;"&gt;format&lt;/SPAN&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; a_datetime b_datetime datetime &lt;/SPAN&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: teal; font-size: 10pt;"&gt;datetime16.&lt;/SPAN&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: navy; font-size: 10pt; background-color: white; font-family: 'Courier New';"&gt;run&lt;/STRONG&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG style="color: navy; font-size: 10pt; background-color: white; font-family: 'Courier New';"&gt;proc&lt;/STRONG&gt; &lt;STRONG style="color: navy; font-size: 10pt; background-color: white; font-family: 'Courier New';"&gt;print&lt;/STRONG&gt; ;&lt;STRONG style="color: navy; font-size: 10pt; background-color: white; font-family: 'Courier New';"&gt;run&lt;/STRONG&gt;&lt;SPAN style="background-color: white; font-family: 'Courier New'; color: black; font-size: 10pt;"&gt;;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'SAS Monospace'; font-size: 10pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'SAS Monospace'; font-size: 10pt;"&gt;&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;&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;&amp;nbsp; a&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; b&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'SAS Monospace'; font-size: 10pt;"&gt;&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;&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;&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;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'SAS Monospace'; font-size: 10pt;"&gt;&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; d&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;&amp;nbsp;&amp;nbsp; d&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; d&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'SAS Monospace'; font-size: 10pt;"&gt;&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; a A&amp;nbsp; B&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; a&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; a&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'SAS Monospace'; font-size: 10pt;"&gt;&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; t _&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; t&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; t&amp;nbsp; p&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'SAS Monospace'; font-size: 10pt;"&gt;&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; e p&amp;nbsp; p&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; e&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; e&amp;nbsp; r&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'SAS Monospace'; font-size: 10pt;"&gt;&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; t r&amp;nbsp; r&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; t&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; t&amp;nbsp; e&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'SAS Monospace'; font-size: 10pt;"&gt; O&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; i i&amp;nbsp; i&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; i&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; i&amp;nbsp; v&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'SAS Monospace'; font-size: 10pt;"&gt; b&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; m c&amp;nbsp; c&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; m&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; m&amp;nbsp; _&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'SAS Monospace'; font-size: 10pt;"&gt; s&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; e e&amp;nbsp; e&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; e&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; e&amp;nbsp; a&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'SAS Monospace'; font-size: 10pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'SAS Monospace'; font-size: 10pt;"&gt; 1 22JUN11:00:00:09&amp;nbsp;&amp;nbsp; 0.02 22JUN11:00:00:08 22JUN11:00:00:09 1.9&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'SAS Monospace'; font-size: 10pt;"&gt; 2 22JUN11:00:39:05&amp;nbsp;&amp;nbsp; 0.04 22JUN11:00:39:03 22JUN11:00:39:05 2.7&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'SAS Monospace'; font-size: 10pt;"&gt; 3 26JUN11:12:42:20&amp;nbsp;&amp;nbsp; 0.09 26JUN11:12:42:18 26JUN11:12:42:20 3.6&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-family: 'SAS Monospace'; font-size: 10pt;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 26 Mar 2012 20:03:15 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/same-trade-times-large-data-sets/m-p/43725#M11453</guid>
      <dc:creator>Linlin</dc:creator>
      <dc:date>2012-03-26T20:03:15Z</dc:date>
    </item>
    <item>
      <title>same trade times - large data sets</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/same-trade-times-large-data-sets/m-p/43726#M11454</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;seems to work on the small example data set, although variable 'a_price' seems to not show up in the 'want' table?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 26 Mar 2012 20:04:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/same-trade-times-large-data-sets/m-p/43726#M11454</guid>
      <dc:creator>skipper</dc:creator>
      <dc:date>2012-03-26T20:04:30Z</dc:date>
    </item>
    <item>
      <title>same trade times - large data sets</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/same-trade-times-large-data-sets/m-p/43727#M11455</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt; OK, got it.&amp;nbsp; And I like it!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You've probably posted this already, but I think you meant to code prev_a=a_price instead of prev_a=a.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 26 Mar 2012 20:09:28 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/same-trade-times-large-data-sets/m-p/43727#M11455</guid>
      <dc:creator>Astounding</dc:creator>
      <dc:date>2012-03-26T20:09:28Z</dc:date>
    </item>
    <item>
      <title>same trade times - large data sets</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/same-trade-times-large-data-sets/m-p/43728#M11456</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Just ran it on my large data sets &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;A - 1.5 million obs&lt;/P&gt;&lt;P&gt;B = 21k obs&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data set 'want' gets done in 0.42 seconds, WOW, amazing!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;and for some reason 'a_pricea now gets shown fine in the output of 'want' for these large data sets, strange?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 26 Mar 2012 20:11:19 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/same-trade-times-large-data-sets/m-p/43728#M11456</guid>
      <dc:creator>skipper</dc:creator>
      <dc:date>2012-03-26T20:11:19Z</dc:date>
    </item>
    <item>
      <title>same trade times - large data sets</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/same-trade-times-large-data-sets/m-p/43729#M11457</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You are getting more values for A_PRICE because of more exact matches in DATETIME values.&lt;/P&gt;&lt;P&gt;Without an exact match the price for A that corresponds to the A_DATETIME would be in the variable PREV_A.&lt;/P&gt;&lt;P&gt;You could deal with that with more rename commands or make the logic more complex to handle getting the value retained back into the A_PRICE variable before the OUTPUT statement.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Note that if you wanted to match one B record to multiple A records then this method will not work.&amp;nbsp; It will only output the A price that is closest in time (but still earlier).&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 26 Mar 2012 20:24:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/same-trade-times-large-data-sets/m-p/43729#M11457</guid>
      <dc:creator>Tom</dc:creator>
      <dc:date>2012-03-26T20:24:50Z</dc:date>
    </item>
    <item>
      <title>same trade times - large data sets</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/same-trade-times-large-data-sets/m-p/43730#M11458</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi skipper,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The following code will be slower than Tom's, however, it should be way faster than my other two trials. It has a little bit more than 1 pass of your huge dataset, and it will keep your a_price as you wish. Please give it try and let me how it goes:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data have (index=(a_datetime));&lt;/P&gt;&lt;P&gt;format a_datetime datetime16.;&lt;/P&gt;&lt;P&gt;&amp;nbsp; set product_a product_b(rename=b_datetime=a_datetime);&lt;/P&gt;&lt;P&gt;&amp;nbsp; by a_datetime;&lt;/P&gt;&lt;P&gt;&amp;nbsp; lga_time=lag(a_datetime);&lt;/P&gt;&lt;P&gt;&amp;nbsp; lga_price=lag(a_price);&lt;/P&gt;&lt;P&gt;&amp;nbsp; run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; data want (drop=lg:);&lt;/P&gt;&lt;P&gt;&amp;nbsp; format b_datetime datetime16.;&lt;/P&gt;&lt;P&gt;&amp;nbsp; set product_b (rename=b_datetime=a_datetime);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; set have key=a_datetime;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if _iorc_=%sysrc(_sok) then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if not missing(a_price) then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b_datetime=a_datetime;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; output;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if missing(a_price) then do;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b_datetime=a_datetime;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a_datetime= lga_time;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a_price=lga_price;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if 0&amp;lt;=b_datetime-a_datetime&amp;lt;=5 then output;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 26 Mar 2012 20:29:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/same-trade-times-large-data-sets/m-p/43730#M11458</guid>
      <dc:creator>Haikuo</dc:creator>
      <dc:date>2012-03-26T20:29:05Z</dc:date>
    </item>
    <item>
      <title>same trade times - large data sets</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/same-trade-times-large-data-sets/m-p/43731#M11459</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;thanks I will try this and report back&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 26 Mar 2012 21:04:11 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/same-trade-times-large-data-sets/m-p/43731#M11459</guid>
      <dc:creator>skipper</dc:creator>
      <dc:date>2012-03-26T21:04:11Z</dc:date>
    </item>
    <item>
      <title>same trade times - large data sets</title>
      <link>https://communities.sas.com/t5/SAS-Procedures/same-trade-times-large-data-sets/m-p/43732#M11460</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;DOW can do it. But If you need fast it ,Hash Table will be favored.&lt;/P&gt;&lt;P&gt;But for your data, I am curious. You said you want datetime within five seconds .&lt;/P&gt;&lt;P&gt;There two obs within 5 seconds for&amp;nbsp; &lt;SPAN style="font-size: 8pt; font-family: 'courier new',courier; color: #0000ff;"&gt;26JUN11:00:42:20&amp;nbsp;&amp;nbsp; 0.09 &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="background-color: #eef4f9; font-size: 12px; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;SPAN style="font-size: 8pt; font-family: 'courier new', courier; color: #0000ff;"&gt;26JUN11:12:42:17 3.4&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="background-color: #eef4f9; font-size: 12px; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;SPAN style="font-size: 8pt; font-family: 'courier new', courier; color: #0000ff;"&gt;26JUN11:12:42:18 3.6&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="background-color: #eef4f9; font-size: 12px; font-family: Arial, Helvetica, sans-serif;"&gt;&lt;SPAN style="font-size: 8pt; font-family: 'courier new', courier; color: #0000ff;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;You need them all, or just only need the nearest obs ?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;DATA product_A;
&amp;nbsp;&amp;nbsp; INPUT A_datetime datetime16. A_price $;
&amp;nbsp;&amp;nbsp; format a_datetime datetime.;
&amp;nbsp;&amp;nbsp; DATALINES;
22JUN11:00:00:04&amp;nbsp;&amp;nbsp;&amp;nbsp; 1.7
22JUN11:00:00:08 1.9
22JUN11:00:00:10 2.3
22JUN11:00:05:12 2.9
22JUN11:00:05:36 3.5
22JUN11:00:32:45 3.2
22JUN11:00:39:01 3.1
22JUN11:00:39:03 2.7
22JUN11:01:10:12 2.6
22JUN11:07:22:10 2.1
26JUN11:12:42:17 3.4
26JUN11:12:42:18 3.6
26JUN11:12:42:21 3.9
;
RUN;

DATA product_B;
&amp;nbsp;&amp;nbsp; INPUT B_datetime datetime16. B_price $;
&amp;nbsp;&amp;nbsp; format b_datetime datetime.;
&amp;nbsp;&amp;nbsp; DATALINES;
22JUN11:00:00:09&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.02
22JUN11:00:05:34&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.07
22JUN11:00:39:05&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.04
26JUN11:12:42:20&amp;nbsp;&amp;nbsp;&amp;nbsp; 0.09
;
RUN;

data want;
 set product_b;
 do until(a_datetime gt b_datetime);
&amp;nbsp; if b_datetime-a_datetime lt 5 and b_datetime-a_datetime ge 0 then output;
&amp;nbsp; set product_a;
 end;
run;


&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ksharp&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 27 Mar 2012 07:33:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Procedures/same-trade-times-large-data-sets/m-p/43732#M11460</guid>
      <dc:creator>Ksharp</dc:creator>
      <dc:date>2012-03-27T07:33:55Z</dc:date>
    </item>
  </channel>
</rss>

