<?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: How to Match Observations from Two Variables in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/How-to-Match-Observations-from-Two-Variables/m-p/356963#M274179</link>
    <description>&lt;P&gt;Using a proc sql join you could pull the two together fairly simply. Essentially you need a standard key between the two to join on. Proc sql lets you cheat a bit using an on statement. Otherwise you'd need to create something two two can join on. One additional benefit is that joins don't require a sort compared to a merge.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;proc sql; create table joined as select a.*, b.* from subject1 a left join subject2 b&lt;BR /&gt;on substr(a.a, 3,7) = b.b;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Which would get you:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Subject1&lt;/TD&gt;&lt;TD&gt;Subject2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A-0001-01&lt;/TD&gt;&lt;TD&gt;0001-01&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A-0001-01&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;/TD&gt;&lt;TD&gt;0001-01&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A-0001-01&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;/TD&gt;&lt;TD&gt;0001-01&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B-0002-02&lt;/TD&gt;&lt;TD&gt;0002-02&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B-0002-02&lt;/TD&gt;&lt;TD&gt;0002-02&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;C-0003-03&lt;/TD&gt;&lt;TD&gt;0003-03&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;C-0003-03&lt;/TD&gt;&lt;TD&gt;0003-03&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;C-0003-03&lt;/TD&gt;&lt;TD&gt;0003-03&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;C-0003-03&lt;/TD&gt;&lt;TD&gt;0003-03&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
    <pubDate>Mon, 08 May 2017 18:17:07 GMT</pubDate>
    <dc:creator>CliftonDenning</dc:creator>
    <dc:date>2017-05-08T18:17:07Z</dc:date>
    <item>
      <title>How to Match Observations from Two Variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-Match-Observations-from-Two-Variables/m-p/356960#M274178</link>
      <description>&lt;P&gt;Hello!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am using SAS ver9.3 and I am attempting to match observations from two different variables: &lt;EM&gt;Subject1&amp;nbsp;&lt;/EM&gt;and &lt;EM&gt;Subject2&lt;/EM&gt;. &lt;EM&gt;Subject2&lt;/EM&gt; doesn't have as many observations as &lt;EM&gt;Subject1&lt;/EM&gt; due to necessary duplicates and that is causing the issue. When these two variables are in the same dataset using a simple merge, it ends up looking like this:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Subject1&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; Subject2&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;A-0001-01&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; 0001-01&lt;/P&gt;&lt;P&gt;A-0001-01&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;0002-02&lt;/P&gt;&lt;P&gt;A-0001-01&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;0003-03&lt;/P&gt;&lt;P&gt;B-0002-02&lt;/P&gt;&lt;P&gt;B-0002-02&lt;/P&gt;&lt;P&gt;C-0003-03&lt;/P&gt;&lt;P&gt;C-0003-03&lt;/P&gt;&lt;P&gt;C-0003-03&lt;/P&gt;&lt;P&gt;C-0003-03&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Instead, this is what I'm interested in:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Subject1&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; Subject2&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;A-0001-01&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; 0001-01&lt;/P&gt;&lt;P&gt;A-0001-01&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;/P&gt;&lt;P&gt;A-0001-01&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;/P&gt;&lt;P&gt;B-0002-02&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; 0002-02&lt;/P&gt;&lt;P&gt;B-0002-02&lt;/P&gt;&lt;P&gt;C-0003-03&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;0003-03&lt;/P&gt;&lt;P&gt;C-0003-03&lt;/P&gt;&lt;P&gt;C-0003-03&lt;/P&gt;&lt;P&gt;C-0003-03&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I am new to SAS programming,&amp;nbsp;so I apologize if there might be a simple fix that I'm not realizing. Thank you!&lt;/P&gt;</description>
      <pubDate>Mon, 08 May 2017 17:58:50 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-Match-Observations-from-Two-Variables/m-p/356960#M274178</guid>
      <dc:creator>yawenyu</dc:creator>
      <dc:date>2017-05-08T17:58:50Z</dc:date>
    </item>
    <item>
      <title>Re: How to Match Observations from Two Variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-Match-Observations-from-Two-Variables/m-p/356963#M274179</link>
      <description>&lt;P&gt;Using a proc sql join you could pull the two together fairly simply. Essentially you need a standard key between the two to join on. Proc sql lets you cheat a bit using an on statement. Otherwise you'd need to create something two two can join on. One additional benefit is that joins don't require a sort compared to a merge.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;proc sql; create table joined as select a.*, b.* from subject1 a left join subject2 b&lt;BR /&gt;on substr(a.a, 3,7) = b.b;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Which would get you:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Subject1&lt;/TD&gt;&lt;TD&gt;Subject2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A-0001-01&lt;/TD&gt;&lt;TD&gt;0001-01&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A-0001-01&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;/TD&gt;&lt;TD&gt;0001-01&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A-0001-01&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;/TD&gt;&lt;TD&gt;0001-01&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B-0002-02&lt;/TD&gt;&lt;TD&gt;0002-02&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B-0002-02&lt;/TD&gt;&lt;TD&gt;0002-02&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;C-0003-03&lt;/TD&gt;&lt;TD&gt;0003-03&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;C-0003-03&lt;/TD&gt;&lt;TD&gt;0003-03&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;C-0003-03&lt;/TD&gt;&lt;TD&gt;0003-03&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;C-0003-03&lt;/TD&gt;&lt;TD&gt;0003-03&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
      <pubDate>Mon, 08 May 2017 18:17:07 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-Match-Observations-from-Two-Variables/m-p/356963#M274179</guid>
      <dc:creator>CliftonDenning</dc:creator>
      <dc:date>2017-05-08T18:17:07Z</dc:date>
    </item>
    <item>
      <title>Re: How to Match Observations from Two Variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-Match-Observations-from-Two-Variables/m-p/357026#M274180</link>
      <description>&lt;P&gt;Hi &lt;SPAN&gt;Clifton, thank you for your reply. I went ahead and tried the code, but is there a way to keep the blank obervations? Like this:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Subject1&lt;/TD&gt;&lt;TD&gt;Subject2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A-0001-01&lt;/TD&gt;&lt;TD&gt;0001-01&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A-0001-01&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;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;A-0001-01&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;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B-0002-02&lt;/TD&gt;&lt;TD&gt;0002-02&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;B-0002-02&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;C-0003-03&lt;/TD&gt;&lt;TD&gt;0003-03&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;C-0003-03&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;C-0003-03&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;C-0003-03&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;</description>
      <pubDate>Mon, 08 May 2017 21:38:02 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-Match-Observations-from-Two-Variables/m-p/357026#M274180</guid>
      <dc:creator>yawenyu</dc:creator>
      <dc:date>2017-05-08T21:38:02Z</dc:date>
    </item>
    <item>
      <title>Re: How to Match Observations from Two Variables</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-Match-Observations-from-Two-Variables/m-p/357045#M274181</link>
      <description>&lt;P&gt;Well I was assuming you wanted to combine them based on a key, but if they are the same size and you just want them to be in the same dataset in the same order:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;data combined;&lt;/P&gt;&lt;P&gt;merge subject1 subject2;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Should do it. However if you want to join them with the pseudo key I mentioned above, maybe with additional values, the values would all be populated, unless you create a unique key that you can then join on.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Alternatlvely if you are pressed for time you can use a pretty inefficient “first”&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Data final;&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;&amp;nbsp; Set joined;&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;&amp;nbsp; By subject1;&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;&amp;nbsp; If not first.subject1 then subject2 = “”;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;That would set them all to null.&lt;/P&gt;&lt;P&gt;To set a key you could just run this on subject1:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Data &lt;SPAN&gt;subject1&lt;/SPAN&gt;;&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;&amp;nbsp; Set subject1;&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;&amp;nbsp; By subject1;&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;&amp;nbsp; If first.subject1 then key = substr(subject1, 3,7);&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Then just join on the new key value.&lt;/P&gt;</description>
      <pubDate>Tue, 09 May 2017 01:55:37 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-Match-Observations-from-Two-Variables/m-p/357045#M274181</guid>
      <dc:creator>CliftonDenning</dc:creator>
      <dc:date>2017-05-09T01:55:37Z</dc:date>
    </item>
  </channel>
</rss>

