<?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: select variables from different column in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/select-variables-from-different-column/m-p/413245#M279904</link>
    <description>&lt;P&gt;thank you so much. That is awesome. but there is one thing.&amp;nbsp;&lt;/P&gt;&lt;P&gt;the code keeps considering the last time value. if the ID appears in a different group it will measure the time of new ID with the last time.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;the output of your&amp;nbsp;code.&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;group id   date   time     duraion        &lt;BR /&gt;&lt;BR /&gt;   &lt;BR /&gt;1	A	20/07/2014	15:07.0	1	1:15:07
1	L	20/07/2014	50:30.0	2	1:20:18
2	L	20/07/2014	04:50.0	1	0:14:20
3	A	20/07/2014	41:19.0	1	2:26:12
4	B	20/07/2014	02:05.0	3	0:20:46&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;How to say that if&amp;nbsp;another ID is found start match again. and the number of the count of groups is &amp;gt;0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Tue, 14 Nov 2017 09:57:42 GMT</pubDate>
    <dc:creator>ihlayyel</dc:creator>
    <dc:date>2017-11-14T09:57:42Z</dc:date>
    <item>
      <title>select variables from different column</title>
      <link>https://communities.sas.com/t5/SAS-Programming/select-variables-from-different-column/m-p/412900#M279898</link>
      <description>&lt;PRE&gt;data have;&lt;BR /&gt;infile cards expandtabs;&lt;BR /&gt;input group id$ date$ time$ class;&lt;BR /&gt;cards;&lt;BR /&gt;0 A 20/7/2014 10:00:00 1&lt;BR /&gt;0 L 20/7/2014 10:30:12 2&lt;BR /&gt;1 R 20/7/2014 11:12:05 3&lt;BR /&gt;1 A 20/7/2014 11:15:07 1&lt;BR /&gt;1 L 20/7/2014 11:50:30 2&lt;BR /&gt;2 F 20/7/2014 12:02:06 1&lt;BR /&gt;2 L 20/7/2014 12:04:50 1&lt;BR /&gt;3 A 20/7/2014 13:41:19 1&lt;BR /&gt;3 B 20/7/2014 13:41:19 3&lt;BR /&gt;3 C 20/7/2014 13:41:19 2&lt;BR /&gt;4 B 20/7/2014 14:02:05 3&lt;BR /&gt;;&lt;BR /&gt;run;&lt;/PRE&gt;&lt;P&gt;&lt;BR /&gt;Hi, i would like to select the ID&amp;nbsp; that appears in two groups consequently&amp;nbsp;with respect to the class as well.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;look at ID if groups&amp;gt;= 2&amp;nbsp; and the class = class then&lt;/P&gt;&lt;P&gt;calculate the time duration.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The expected output.&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;id&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;date&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;duration&amp;nbsp;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;class&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A&lt;/TD&gt;&lt;TD&gt;20/7/2014&lt;/TD&gt;&lt;TD&gt;1:15:07&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;L&lt;/TD&gt;&lt;TD&gt;20/7/2014&lt;/TD&gt;&lt;TD&gt;1:20:18&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B&lt;/TD&gt;&lt;TD&gt;20/7/2014&lt;/TD&gt;&lt;TD&gt;0:20:46&lt;/TD&gt;&lt;TD&gt;3&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;Thank you.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 13 Nov 2017 15:01:41 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/select-variables-from-different-column/m-p/412900#M279898</guid>
      <dc:creator>ihlayyel</dc:creator>
      <dc:date>2017-11-13T15:01:41Z</dc:date>
    </item>
    <item>
      <title>Re: select variables from different column</title>
      <link>https://communities.sas.com/t5/SAS-Programming/select-variables-from-different-column/m-p/412909#M279899</link>
      <description>&lt;P&gt;Not sure I really follow you, just sort the data:&lt;/P&gt;
&lt;PRE&gt;proc sort data=have out=want;
  by id group;
run;
data want;
  set want;
  if group &amp;gt; 0 and id=lag(id) then do;
    duration=time-lag(time);
    output;
  end;
run;&lt;/PRE&gt;
&lt;P&gt;Something like that, can't test as you have not&amp;nbsp;&lt;STRONG&gt;provided test data in the form of a datastep!&lt;/STRONG&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 13 Nov 2017 14:14:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/select-variables-from-different-column/m-p/412909#M279899</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2017-11-13T14:14:52Z</dc:date>
    </item>
    <item>
      <title>Re: select variables from different column</title>
      <link>https://communities.sas.com/t5/SAS-Programming/select-variables-from-different-column/m-p/412913#M279900</link>
      <description>Iam so sorry for that. I have modified the data</description>
      <pubDate>Mon, 13 Nov 2017 14:21:27 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/select-variables-from-different-column/m-p/412913#M279900</guid>
      <dc:creator>ihlayyel</dc:creator>
      <dc:date>2017-11-13T14:21:27Z</dc:date>
    </item>
    <item>
      <title>Re: select variables from different column</title>
      <link>https://communities.sas.com/t5/SAS-Programming/select-variables-from-different-column/m-p/412914#M279901</link>
      <description>&lt;BLOCKQUOTE&gt;&lt;HR /&gt;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/170292"&gt;@ihlayyel&lt;/a&gt; wrote:&lt;BR /&gt;Iam so sorry for that. I have modified the data&lt;HR /&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;Do so again. You should know by now what a data step is and how data step code looks. The intention is that with a simple copy/paste and submit of your code the dataset is created. No ERRORs, no WARNINGs.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;PS in response to this:&lt;/P&gt;
&lt;PRE class=" language-sas"&gt;&lt;CODE class="  language-sas"&gt;&lt;SPAN class="token keyword"&gt;group&lt;/SPAN&gt; &lt;SPAN class="token keyword"&gt;id&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;date&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;time&lt;/SPAN&gt; &lt;SPAN class="token statement"&gt;class&lt;/SPAN&gt;
&lt;SPAN class="token number"&gt;0&lt;/SPAN&gt; A &lt;SPAN class="token number"&gt;20&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="token number"&gt;7&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="token number"&gt;2014&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;10&lt;/SPAN&gt;:&lt;SPAN class="token number"&gt;00&lt;/SPAN&gt;:&lt;SPAN class="token number"&gt;00&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;1&lt;/SPAN&gt;
&lt;SPAN class="token number"&gt;0&lt;/SPAN&gt; L &lt;SPAN class="token number"&gt;20&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="token number"&gt;7&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="token number"&gt;2014&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;10&lt;/SPAN&gt;:&lt;SPAN class="token number"&gt;30&lt;/SPAN&gt;:&lt;SPAN class="token number"&gt;12&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;2&lt;/SPAN&gt;
&lt;SPAN class="token number"&gt;1&lt;/SPAN&gt; R &lt;SPAN class="token number"&gt;20&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="token number"&gt;7&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="token number"&gt;2014&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;11&lt;/SPAN&gt;:&lt;SPAN class="token number"&gt;12&lt;/SPAN&gt;:&lt;SPAN class="token number"&gt;05&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;3&lt;/SPAN&gt;
&lt;SPAN class="token number"&gt;1&lt;/SPAN&gt; A &lt;SPAN class="token number"&gt;20&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="token number"&gt;7&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="token number"&gt;2014&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;11&lt;/SPAN&gt;:&lt;SPAN class="token number"&gt;15&lt;/SPAN&gt;:&lt;SPAN class="token number"&gt;07&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;1&lt;/SPAN&gt;
&lt;SPAN class="token number"&gt;1&lt;/SPAN&gt; L &lt;SPAN class="token number"&gt;20&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="token number"&gt;7&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="token number"&gt;2014&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;11&lt;/SPAN&gt;:&lt;SPAN class="token number"&gt;50&lt;/SPAN&gt;:&lt;SPAN class="token number"&gt;30&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;2&lt;/SPAN&gt;
&lt;SPAN class="token number"&gt;2&lt;/SPAN&gt; F &lt;SPAN class="token number"&gt;20&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="token number"&gt;7&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="token number"&gt;2014&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;12&lt;/SPAN&gt;:&lt;SPAN class="token number"&gt;02&lt;/SPAN&gt;:&lt;SPAN class="token number"&gt;06&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;1&lt;/SPAN&gt;
&lt;SPAN class="token number"&gt;2&lt;/SPAN&gt; L &lt;SPAN class="token number"&gt;20&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="token number"&gt;7&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="token number"&gt;2014&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;12&lt;/SPAN&gt;:&lt;SPAN class="token number"&gt;04&lt;/SPAN&gt;:&lt;SPAN class="token number"&gt;50&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;1&lt;/SPAN&gt;
&lt;SPAN class="token number"&gt;3&lt;/SPAN&gt; A &lt;SPAN class="token number"&gt;20&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="token number"&gt;7&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="token number"&gt;2014&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;13&lt;/SPAN&gt;:&lt;SPAN class="token number"&gt;41&lt;/SPAN&gt;:&lt;SPAN class="token number"&gt;19&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;1&lt;/SPAN&gt;
&lt;SPAN class="token number"&gt;3&lt;/SPAN&gt; B &lt;SPAN class="token number"&gt;20&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="token number"&gt;7&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="token number"&gt;2014&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;13&lt;/SPAN&gt;:&lt;SPAN class="token number"&gt;41&lt;/SPAN&gt;:&lt;SPAN class="token number"&gt;19&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;3&lt;/SPAN&gt;
&lt;SPAN class="token number"&gt;3&lt;/SPAN&gt; C &lt;SPAN class="token number"&gt;20&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="token number"&gt;7&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="token number"&gt;2014&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;13&lt;/SPAN&gt;:&lt;SPAN class="token number"&gt;41&lt;/SPAN&gt;:&lt;SPAN class="token number"&gt;19&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;2&lt;/SPAN&gt;
&lt;SPAN class="token number"&gt;4&lt;/SPAN&gt; B &lt;SPAN class="token number"&gt;20&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="token number"&gt;7&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;/&lt;/SPAN&gt;&lt;SPAN class="token number"&gt;2014&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;14&lt;/SPAN&gt;:&lt;SPAN class="token number"&gt;02&lt;/SPAN&gt;:&lt;SPAN class="token number"&gt;05&lt;/SPAN&gt; &lt;SPAN class="token number"&gt;3&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;which is not SAS code at all. &lt;/P&gt;</description>
      <pubDate>Mon, 13 Nov 2017 14:24:56 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/select-variables-from-different-column/m-p/412914#M279901</guid>
      <dc:creator>Kurt_Bremser</dc:creator>
      <dc:date>2017-11-13T14:24:56Z</dc:date>
    </item>
    <item>
      <title>Re: select variables from different column</title>
      <link>https://communities.sas.com/t5/SAS-Programming/select-variables-from-different-column/m-p/412919#M279902</link>
      <description>Thank you for your reply. I am working on it &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;</description>
      <pubDate>Mon, 13 Nov 2017 14:39:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/select-variables-from-different-column/m-p/412919#M279902</guid>
      <dc:creator>ihlayyel</dc:creator>
      <dc:date>2017-11-13T14:39:09Z</dc:date>
    </item>
    <item>
      <title>Re: select variables from different column</title>
      <link>https://communities.sas.com/t5/SAS-Programming/select-variables-from-different-column/m-p/412928#M279903</link>
      <description>&lt;P&gt;When ID='A' has more than 2 observations, do you want duration to be the time difference between the current&amp;nbsp; A and the most recent&amp;nbsp;prior A?&amp;nbsp; If so, then you want what I would term a "dynamic lag" - ("dynamic" because the two A records are separated by a non-constant number of intermediate records).&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Assuming your dataset is sorted by TIME&amp;nbsp; (it doesn't matter whether it is sorted&amp;nbsp; by ID):&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data want (drop=_:);
  set have;
  format _last_time duration time8.0;
  if _n_=1 then do;
    declare hash h();
      h.definekey('id');
      h.definedata('_last_time');
      h.definedone();
  end;
  _rc=h.find();
  if _rc=0 then duration= time-_last_time ;
  _rc=h.replace(key:id,data:time);
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Now, if DATE&amp;nbsp; matters also (i.e. DURATION can cross date boundaries), then you'll have to add a variable called _LAST_DATE to the format statement, the DEFINEDATA method, and to the REPLACE method.&amp;nbsp;&amp;nbsp; You'll also have to calculate&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; DURATION=86400*(date-_last_date)&amp;nbsp; + time - _last_time;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;And you'll also probably want to change the format of DURATION to, say TIME9.0 (accommodates up to 999 hours, 59 mins, 59 secs) or HHMM6.0&amp;nbsp; (up to&amp;nbsp; 999 hours, 59 mins).&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This program depends&amp;nbsp; on creating&amp;nbsp; a hash object H, which&amp;nbsp; allows values to be stored keyed on ID, retrieved, and persists across observations.&lt;/P&gt;</description>
      <pubDate>Mon, 13 Nov 2017 14:57:05 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/select-variables-from-different-column/m-p/412928#M279903</guid>
      <dc:creator>mkeintz</dc:creator>
      <dc:date>2017-11-13T14:57:05Z</dc:date>
    </item>
    <item>
      <title>Re: select variables from different column</title>
      <link>https://communities.sas.com/t5/SAS-Programming/select-variables-from-different-column/m-p/413245#M279904</link>
      <description>&lt;P&gt;thank you so much. That is awesome. but there is one thing.&amp;nbsp;&lt;/P&gt;&lt;P&gt;the code keeps considering the last time value. if the ID appears in a different group it will measure the time of new ID with the last time.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;the output of your&amp;nbsp;code.&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;group id   date   time     duraion        &lt;BR /&gt;&lt;BR /&gt;   &lt;BR /&gt;1	A	20/07/2014	15:07.0	1	1:15:07
1	L	20/07/2014	50:30.0	2	1:20:18
2	L	20/07/2014	04:50.0	1	0:14:20
3	A	20/07/2014	41:19.0	1	2:26:12
4	B	20/07/2014	02:05.0	3	0:20:46&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;How to say that if&amp;nbsp;another ID is found start match again. and the number of the count of groups is &amp;gt;0&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 14 Nov 2017 09:57:42 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/select-variables-from-different-column/m-p/413245#M279904</guid>
      <dc:creator>ihlayyel</dc:creator>
      <dc:date>2017-11-14T09:57:42Z</dc:date>
    </item>
    <item>
      <title>Re: select variables from different column</title>
      <link>https://communities.sas.com/t5/SAS-Programming/select-variables-from-different-column/m-p/413257#M279905</link>
      <description>Thank you for your answer. but the calculation missing one point if there is one lag between two groups.</description>
      <pubDate>Tue, 14 Nov 2017 10:19:31 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/select-variables-from-different-column/m-p/413257#M279905</guid>
      <dc:creator>ihlayyel</dc:creator>
      <dc:date>2017-11-14T10:19:31Z</dc:date>
    </item>
  </channel>
</rss>

