<?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 How to calculate return based on first and last price in a time interval? in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-return-based-on-first-and-last-price-in-a-time/m-p/423503#M280968</link>
    <description>&lt;P&gt;Hello everybody,&lt;/P&gt;&lt;P&gt;I want to calculate the return or the growth of the price variable. Please consider the following table:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;table A&lt;/P&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;name&lt;/TD&gt;&lt;TD&gt;price&lt;/TD&gt;&lt;TD&gt;date&lt;/TD&gt;&lt;TD&gt;time&lt;/TD&gt;&lt;TD&gt;RETURN&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;2-Apr-08&lt;/TD&gt;&lt;TD&gt;9:44:38&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;2-Apr-08&lt;/TD&gt;&lt;TD&gt;9:53:02&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;2-Apr-08&lt;/TD&gt;&lt;TD&gt;9:55:23&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;2-Apr-08&lt;/TD&gt;&lt;TD&gt;9:58:31&lt;/TD&gt;&lt;TD&gt;0.333333&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;2-Apr-08&lt;/TD&gt;&lt;TD&gt;11:17:33&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;2-Apr-08&lt;/TD&gt;&lt;TD&gt;11:18:33&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2-Apr-08&lt;/TD&gt;&lt;TD&gt;11:19:33&lt;/TD&gt;&lt;TD&gt;-0.83333&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;2-Apr-08&lt;/TD&gt;&lt;TD&gt;11:57:33&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;TD&gt;7-Apr-08&lt;/TD&gt;&lt;TD&gt;9:08:39&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;7-Apr-08&lt;/TD&gt;&lt;TD&gt;9:10:22&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;7-Apr-08&lt;/TD&gt;&lt;TD&gt;9:13:41&lt;/TD&gt;&lt;TD&gt;-0.75&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;7-Apr-08&lt;/TD&gt;&lt;TD&gt;9:32:14&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;7-Apr-08&lt;/TD&gt;&lt;TD&gt;9:41:04&lt;/TD&gt;&lt;TD&gt;1.333333&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;TD&gt;17-Apr-08&lt;/TD&gt;&lt;TD&gt;9:15:51&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;17-Apr-08&lt;/TD&gt;&lt;TD&gt;10:24:15&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;22-Jul-08&lt;/TD&gt;&lt;TD&gt;10:16:19&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;22-Jul-08&lt;/TD&gt;&lt;TD&gt;10:20:51&lt;/TD&gt;&lt;TD&gt;0.75&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;TD&gt;22-Jul-08&lt;/TD&gt;&lt;TD&gt;11:12:19&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;22-Jul-08&lt;/TD&gt;&lt;TD&gt;11:15:27&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;22-Jul-08&lt;/TD&gt;&lt;TD&gt;11:17:30&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;22-Jul-08&lt;/TD&gt;&lt;TD&gt;11:18:36&lt;/TD&gt;&lt;TD&gt;-0.375&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;22-Jul-08&lt;/TD&gt;&lt;TD&gt;11:31:50&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;14-Oct-08&lt;/TD&gt;&lt;TD&gt;9:05:07&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;14-Oct-08&lt;/TD&gt;&lt;TD&gt;9:37:11&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;14-Oct-08&lt;/TD&gt;&lt;TD&gt;9:46:16&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;14-Oct-08&lt;/TD&gt;&lt;TD&gt;9:50:56&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;14-Oct-08&lt;/TD&gt;&lt;TD&gt;9:52:52&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;TD&gt;14-Oct-08&lt;/TD&gt;&lt;TD&gt;9:59:23&lt;/TD&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;14-Oct-08&lt;/TD&gt;&lt;TD&gt;10:05:13&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;14-Oct-08&lt;/TD&gt;&lt;TD&gt;11:19:44&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;14-Oct-08&lt;/TD&gt;&lt;TD&gt;11:20:15&lt;/TD&gt;&lt;TD&gt;-0.71429&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Now, I want to calculate the growth of price in half an hour for each name and date values. So, the RETURN variable&amp;nbsp;is:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;RETURNS variable = (Last price value in half an hour for each name and date variables) - (First&lt;SPAN&gt;&amp;nbsp;price value in half an hour for each name and date variables&lt;/SPAN&gt;) / (First&lt;SPAN&gt;&amp;nbsp;price value in half an hour for each name and date variables)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Results have been shown in the last column of table A.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;How can I calculate RETURNS variable in table A?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Thanks in advance.&lt;/SPAN&gt;&lt;/P&gt;</description>
    <pubDate>Mon, 25 Dec 2017 10:37:22 GMT</pubDate>
    <dc:creator>aminkarimid</dc:creator>
    <dc:date>2017-12-25T10:37:22Z</dc:date>
    <item>
      <title>How to calculate return based on first and last price in a time interval?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-return-based-on-first-and-last-price-in-a-time/m-p/423503#M280968</link>
      <description>&lt;P&gt;Hello everybody,&lt;/P&gt;&lt;P&gt;I want to calculate the return or the growth of the price variable. Please consider the following table:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;table A&lt;/P&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;name&lt;/TD&gt;&lt;TD&gt;price&lt;/TD&gt;&lt;TD&gt;date&lt;/TD&gt;&lt;TD&gt;time&lt;/TD&gt;&lt;TD&gt;RETURN&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;2-Apr-08&lt;/TD&gt;&lt;TD&gt;9:44:38&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;2-Apr-08&lt;/TD&gt;&lt;TD&gt;9:53:02&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;2-Apr-08&lt;/TD&gt;&lt;TD&gt;9:55:23&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;2-Apr-08&lt;/TD&gt;&lt;TD&gt;9:58:31&lt;/TD&gt;&lt;TD&gt;0.333333&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;2-Apr-08&lt;/TD&gt;&lt;TD&gt;11:17:33&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;2-Apr-08&lt;/TD&gt;&lt;TD&gt;11:18:33&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2-Apr-08&lt;/TD&gt;&lt;TD&gt;11:19:33&lt;/TD&gt;&lt;TD&gt;-0.83333&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;2-Apr-08&lt;/TD&gt;&lt;TD&gt;11:57:33&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;TD&gt;7-Apr-08&lt;/TD&gt;&lt;TD&gt;9:08:39&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;7-Apr-08&lt;/TD&gt;&lt;TD&gt;9:10:22&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;7-Apr-08&lt;/TD&gt;&lt;TD&gt;9:13:41&lt;/TD&gt;&lt;TD&gt;-0.75&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;7-Apr-08&lt;/TD&gt;&lt;TD&gt;9:32:14&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;7-Apr-08&lt;/TD&gt;&lt;TD&gt;9:41:04&lt;/TD&gt;&lt;TD&gt;1.333333&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;TD&gt;17-Apr-08&lt;/TD&gt;&lt;TD&gt;9:15:51&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;17-Apr-08&lt;/TD&gt;&lt;TD&gt;10:24:15&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;22-Jul-08&lt;/TD&gt;&lt;TD&gt;10:16:19&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;22-Jul-08&lt;/TD&gt;&lt;TD&gt;10:20:51&lt;/TD&gt;&lt;TD&gt;0.75&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;TD&gt;22-Jul-08&lt;/TD&gt;&lt;TD&gt;11:12:19&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;22-Jul-08&lt;/TD&gt;&lt;TD&gt;11:15:27&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;22-Jul-08&lt;/TD&gt;&lt;TD&gt;11:17:30&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;22-Jul-08&lt;/TD&gt;&lt;TD&gt;11:18:36&lt;/TD&gt;&lt;TD&gt;-0.375&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;22-Jul-08&lt;/TD&gt;&lt;TD&gt;11:31:50&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;14-Oct-08&lt;/TD&gt;&lt;TD&gt;9:05:07&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;14-Oct-08&lt;/TD&gt;&lt;TD&gt;9:37:11&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;14-Oct-08&lt;/TD&gt;&lt;TD&gt;9:46:16&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;14-Oct-08&lt;/TD&gt;&lt;TD&gt;9:50:56&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;14-Oct-08&lt;/TD&gt;&lt;TD&gt;9:52:52&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;TD&gt;14-Oct-08&lt;/TD&gt;&lt;TD&gt;9:59:23&lt;/TD&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;14-Oct-08&lt;/TD&gt;&lt;TD&gt;10:05:13&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;7&lt;/TD&gt;&lt;TD&gt;14-Oct-08&lt;/TD&gt;&lt;TD&gt;11:19:44&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;14-Oct-08&lt;/TD&gt;&lt;TD&gt;11:20:15&lt;/TD&gt;&lt;TD&gt;-0.71429&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Now, I want to calculate the growth of price in half an hour for each name and date values. So, the RETURN variable&amp;nbsp;is:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;RETURNS variable = (Last price value in half an hour for each name and date variables) - (First&lt;SPAN&gt;&amp;nbsp;price value in half an hour for each name and date variables&lt;/SPAN&gt;) / (First&lt;SPAN&gt;&amp;nbsp;price value in half an hour for each name and date variables)&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Results have been shown in the last column of table A.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;How can I calculate RETURNS variable in table A?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Thanks in advance.&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 25 Dec 2017 10:37:22 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-return-based-on-first-and-last-price-in-a-time/m-p/423503#M280968</guid>
      <dc:creator>aminkarimid</dc:creator>
      <dc:date>2017-12-25T10:37:22Z</dc:date>
    </item>
    <item>
      <title>Re: How to calculate return based on first and last price in a time interval?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-return-based-on-first-and-last-price-in-a-time/m-p/423513#M280969</link>
      <description>&lt;P&gt;data; infile cards delimiter='09'x; &lt;BR /&gt;Input @1 name $1. @3 price: date: date12. time: time8.; &lt;BR /&gt;format date date10. time time12. ;&lt;BR /&gt;cards;&lt;BR /&gt;A 3 2-Apr-08 9:44:38 &lt;BR /&gt;A 5 2-Apr-08 9:53:02 &lt;BR /&gt;A 7 2-Apr-08 9:55:23 &lt;BR /&gt;A 4 2-Apr-08 9:58:31 0.333333&lt;BR /&gt;A 6 2-Apr-08 11:17:33 &lt;BR /&gt;A 2 2-Apr-08 11:18:33 &lt;BR /&gt;A 1 2-Apr-08 11:19:33 -0.83333&lt;BR /&gt;A 4 2-Apr-08 11:57:33 &lt;BR /&gt;A 8 7-Apr-08 9:08:39 &lt;BR /&gt;A 4 7-Apr-08 9:10:22 &lt;BR /&gt;A 2 7-Apr-08 9:13:41 -0.75&lt;BR /&gt;A 3 7-Apr-08 9:32:14 &lt;BR /&gt;A 7 7-Apr-08 9:41:04 1.333333&lt;BR /&gt;A 8 17-Apr-08 9:15:51 &lt;BR /&gt;A 2 17-Apr-08 10:24:15 &lt;BR /&gt;B 4 22-Jul-08 10:16:19 &lt;BR /&gt;B 7 22-Jul-08 10:20:51 0.75&lt;BR /&gt;B 8 22-Jul-08 11:12:19 &lt;BR /&gt;B 4 22-Jul-08 11:15:27 &lt;BR /&gt;B 2 22-Jul-08 11:17:30 &lt;BR /&gt;B 5 22-Jul-08 11:18:36 -0.375&lt;BR /&gt;B 1 22-Jul-08 11:31:50 &lt;BR /&gt;B 3 14-Oct-08 9:05:07 &lt;BR /&gt;B 1 14-Oct-08 9:37:11 &lt;BR /&gt;B 6 14-Oct-08 9:46:16 &lt;BR /&gt;B 7 14-Oct-08 9:50:56 &lt;BR /&gt;B 7 14-Oct-08 9:52:52 &lt;BR /&gt;B 8 14-Oct-08 9:59:23 7&lt;BR /&gt;B 5 14-Oct-08 10:05:13 &lt;BR /&gt;B 7 14-Oct-08 11:19:44 &lt;BR /&gt;B 2 14-Oct-08 11:20:15 -0.71429&lt;BR /&gt;; * proc print; run;&lt;BR /&gt;data one; set; by name date ;&lt;BR /&gt;retain start; format start time12.; &lt;BR /&gt;if first.date then start=time;&lt;BR /&gt;else if time-start ge '1800' then halfhour+1;&lt;BR /&gt;*proc print; run; &lt;BR /&gt;data want; set; by name date halfhour;&lt;BR /&gt;retain initial; &lt;BR /&gt;if first.halfhour then initial=price;&lt;BR /&gt;else if last.halfhour then return=(price-initial)/initial;&lt;BR /&gt;proc print; run;&lt;/P&gt;</description>
      <pubDate>Mon, 25 Dec 2017 13:49:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-return-based-on-first-and-last-price-in-a-time/m-p/423513#M280969</guid>
      <dc:creator>Jim_G</dc:creator>
      <dc:date>2017-12-25T13:49:30Z</dc:date>
    </item>
    <item>
      <title>Re: How to calculate return based on first and last price in a time interval?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-return-based-on-first-and-last-price-in-a-time/m-p/423517#M280970</link>
      <description>&lt;P&gt;Your first example doesn't seem to calculate pct growth for 30 minute interval. The interval is not more than 15 mins at 9.58pm for the calculation (4-3)/3.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 25 Dec 2017 16:03:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-return-based-on-first-and-last-price-in-a-time/m-p/423517#M280970</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2017-12-25T16:03:05Z</dc:date>
    </item>
    <item>
      <title>Re: How to calculate return based on first and last price in a time interval?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-return-based-on-first-and-last-price-in-a-time/m-p/423518#M280971</link>
      <description>Hello &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/138205"&gt;@novinosrin&lt;/a&gt;.&lt;BR /&gt;Yes, the first interval is not more than 15 mins. However, it doesn't matter. Because half an hour intervals are:&lt;BR /&gt;9:00-9:29&lt;BR /&gt;9:30-9:59&lt;BR /&gt;10:00-10:29 and etc.&lt;BR /&gt;So, growth values are calculated in each half an hour interval.</description>
      <pubDate>Mon, 25 Dec 2017 17:20:35 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-return-based-on-first-and-last-price-in-a-time/m-p/423518#M280971</guid>
      <dc:creator>aminkarimid</dc:creator>
      <dc:date>2017-12-25T17:20:35Z</dc:date>
    </item>
    <item>
      <title>Re: How to calculate return based on first and last price in a time interval?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-return-based-on-first-and-last-price-in-a-time/m-p/423519#M280972</link>
      <description>&lt;P&gt;Then a slight change to the code suggested by&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/41031"&gt;@Jim_G&lt;/a&gt;&amp;nbsp;should suffice. The following uses the intnx function to adjust starting times to the beginning of each 30 minute period:&lt;/P&gt;
&lt;PRE&gt;data;
 infile cards dlm=',' truncover; 
  informat date date12.;
  informat time time8.;
  Input name $ price date time want_return; 
  format date date10. time time12. ;
  x=INTNX ( 'minutes30', time, 0, 'b');
  cards;
A,3,2-Apr-08,9:44:38
A,5,2-Apr-08,9:53:02
A ,7,2-Apr-08,9:55:23
A,4,2-Apr-08,9:58:31,0.333333
A,6,2-Apr-08,11:17:33
A,2,2-Apr-08,11:18:33
A,1,2-Apr-08,11:19:33,-0.83333
A,4,2-Apr-08,11:57:33 
A,8,7-Apr-08,9:08:39 
A,4,7-Apr-08,9:10:22 
A,2,7-Apr-08,9:13:41,-0.75
A,3,7-Apr-08,9:32:14 
A,7,7-Apr-08,9:41:04,1.333333
A,8,17-Apr-08,9:15:51 
A,2,17-Apr-08,10:24:15 
B,4,22-Jul-08,10:16:19 
B,7,22-Jul-08,10:20:51,0.75
B,8,22-Jul-08,11:12:19 
B,4,22-Jul-08,11:15:27 
B,2,22-Jul-08,11:17:30 
B,5,22-Jul-08,11:18:36,-0.375
B,1,22-Jul-08,11:31:50 
B,3,14-Oct-08,9:05:07 
B,1,14-Oct-08,9:37:11 
B,6,14-Oct-08,9:46:16 
B,7,14-Oct-08,9:50:56 
B,7,14-Oct-08,9:52:52 
B,8,14-Oct-08,9:59:23,7
B,5,14-Oct-08,10:05:13 
B,7,14-Oct-08,11:19:44 
B,2,14-Oct-08,11:20:15,-0.71429
;

data one;
  set;
  by name date ;
  retain start;
  format start time12.; 
  if first.date then start=x;
  else if time-start ge '1800' then do;
    halfhour+1;
    start=x;
  end;
run;

data want (drop=halfhour initial x start);
  set;
  by name date halfhour;
  retain initial; 
  if first.halfhour then initial=price;
  else if last.halfhour then return=(price-initial)/initial;
run;
&lt;/PRE&gt;
&lt;P&gt;Art, CEO, AnalystFinder.com&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 25 Dec 2017 17:26:12 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-return-based-on-first-and-last-price-in-a-time/m-p/423519#M280972</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2017-12-25T17:26:12Z</dc:date>
    </item>
    <item>
      <title>Re: How to calculate return based on first and last price in a time interval?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-return-based-on-first-and-last-price-in-a-time/m-p/423520#M280973</link>
      <description>&lt;P&gt;Merry Christmas&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/13711"&gt;@art297&lt;/a&gt;&amp;nbsp; I wonder do we really need two passes once you have the 30 min interval grouping using intnx which you brilliantly coded. So, can't we use that x as a sub group and play with first.x and last.x like here:&lt;/P&gt;&lt;P&gt;Sorry if i am wrong. Just my 2 cents&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;data&lt;/STRONG&gt; have;&lt;/P&gt;&lt;P&gt;&amp;nbsp;infile cards dlm=',' truncover;&lt;/P&gt;&lt;P&gt;&amp;nbsp; informat date date12.;&lt;/P&gt;&lt;P&gt;&amp;nbsp; informat time time8.;&lt;/P&gt;&lt;P&gt;&amp;nbsp; Input name $ price date time want_return;&lt;/P&gt;&lt;P&gt;&amp;nbsp; format date date10. time time12. ;&lt;/P&gt;&lt;P&gt;&amp;nbsp; &lt;STRONG&gt;x=INTNX ( 'minutes30', time, 0, 'b'); &lt;EM&gt;/* I am taking this as a group*/&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; k=put(x,time12.);&lt;/P&gt;&lt;P&gt;&amp;nbsp; cards;&lt;/P&gt;&lt;P&gt;A,3,2-Apr-08,9:44:38&lt;/P&gt;&lt;P&gt;A,5,2-Apr-08,9:53:02&lt;/P&gt;&lt;P&gt;A ,7,2-Apr-08,9:55:23&lt;/P&gt;&lt;P&gt;A,4,2-Apr-08,9:58:31,0.333333&lt;/P&gt;&lt;P&gt;A,6,2-Apr-08,11:17:33&lt;/P&gt;&lt;P&gt;A,2,2-Apr-08,11:18:33&lt;/P&gt;&lt;P&gt;A,1,2-Apr-08,11:19:33,-0.83333&lt;/P&gt;&lt;P&gt;A,4,2-Apr-08,11:57:33&lt;/P&gt;&lt;P&gt;A,8,7-Apr-08,9:08:39&lt;/P&gt;&lt;P&gt;A,4,7-Apr-08,9:10:22&lt;/P&gt;&lt;P&gt;A,2,7-Apr-08,9:13:41,-0.75&lt;/P&gt;&lt;P&gt;A,3,7-Apr-08,9:32:14&lt;/P&gt;&lt;P&gt;A,7,7-Apr-08,9:41:04,1.333333&lt;/P&gt;&lt;P&gt;A,8,17-Apr-08,9:15:51&lt;/P&gt;&lt;P&gt;A,2,17-Apr-08,10:24:15&lt;/P&gt;&lt;P&gt;B,4,22-Jul-08,10:16:19&lt;/P&gt;&lt;P&gt;B,7,22-Jul-08,10:20:51,0.75&lt;/P&gt;&lt;P&gt;B,8,22-Jul-08,11:12:19&lt;/P&gt;&lt;P&gt;B,4,22-Jul-08,11:15:27&lt;/P&gt;&lt;P&gt;B,2,22-Jul-08,11:17:30&lt;/P&gt;&lt;P&gt;B,5,22-Jul-08,11:18:36,-0.375&lt;/P&gt;&lt;P&gt;B,1,22-Jul-08,11:31:50&lt;/P&gt;&lt;P&gt;B,3,14-Oct-08,9:05:07&lt;/P&gt;&lt;P&gt;B,1,14-Oct-08,9:37:11&lt;/P&gt;&lt;P&gt;B,6,14-Oct-08,9:46:16&lt;/P&gt;&lt;P&gt;B,7,14-Oct-08,9:50:56&lt;/P&gt;&lt;P&gt;B,7,14-Oct-08,9:52:52&lt;/P&gt;&lt;P&gt;B,8,14-Oct-08,9:59:23,7&lt;/P&gt;&lt;P&gt;B,5,14-Oct-08,10:05:13&lt;/P&gt;&lt;P&gt;B,7,14-Oct-08,11:19:44&lt;/P&gt;&lt;P&gt;B,2,14-Oct-08,11:20:15,-0.71429&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;data&lt;/STRONG&gt; want (drop= initial x start);&lt;/P&gt;&lt;P&gt;&amp;nbsp; set have;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp; by name date x;&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; retain initial;&lt;/P&gt;&lt;P&gt;&amp;nbsp; if first.&lt;STRONG&gt;x&lt;/STRONG&gt; then initial=price;&lt;/P&gt;&lt;P&gt;&amp;nbsp; else if last.&lt;STRONG&gt;x&lt;/STRONG&gt; then return=(price-initial)/initial;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;run&lt;/STRONG&gt;;&lt;/P&gt;</description>
      <pubDate>Mon, 25 Dec 2017 19:16:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-return-based-on-first-and-last-price-in-a-time/m-p/423520#M280973</guid>
      <dc:creator>novinosrin</dc:creator>
      <dc:date>2017-12-25T19:16:07Z</dc:date>
    </item>
    <item>
      <title>Re: How to calculate return based on first and last price in a time interval?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-return-based-on-first-and-last-price-in-a-time/m-p/423521#M280974</link>
      <description>&lt;P&gt;Merry Christmas (and/or Happy Holidays) to you and everyone else. In answer to your question: of course you could .. as long as you remove the variable 'start' from the drop list. However, you'd still need two passes if you didn't create the variable 'x' in the initial datastep.&lt;/P&gt;
&lt;P&gt;I wasn't trying to optimize the code but, rather, simply modify&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/41031"&gt;@Jim_G&lt;/a&gt;'s code so that it met the newly stated condition.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Art, CEO, AnalystFinder.com&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 25 Dec 2017 19:40:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-return-based-on-first-and-last-price-in-a-time/m-p/423521#M280974</guid>
      <dc:creator>art297</dc:creator>
      <dc:date>2017-12-25T19:40:18Z</dc:date>
    </item>
    <item>
      <title>Re: How to calculate return based on first and last price in a time interval?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-return-based-on-first-and-last-price-in-a-time/m-p/423522#M280975</link>
      <description>Thank you so much &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/13711"&gt;@art297&lt;/a&gt;,&lt;BR /&gt;Merry Christmas to everyone.</description>
      <pubDate>Mon, 25 Dec 2017 20:00:58 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-calculate-return-based-on-first-and-last-price-in-a-time/m-p/423522#M280975</guid>
      <dc:creator>aminkarimid</dc:creator>
      <dc:date>2017-12-25T20:00:58Z</dc:date>
    </item>
  </channel>
</rss>

