<?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 Common elements in two vectors in SAS/IML Software and Matrix Computations</title>
    <link>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Common-elements-in-two-vectors/m-p/53855#M313</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt; Here's a SAS/IML module that duplicates the functionality of the ELEMENT function that was introduced in SAS/IML 9.3:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; start elementMod(x, y);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ncol(x)=0 then return(_NULL_);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b = j(nrow(x), ncol(x), 0);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ncol(y)=0 then return(b);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; u = xsect(x, y);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ncol(u)=0 then return(b);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do i = 1 to ncol(u);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b = bor(b, (x=u&lt;I&gt;));&lt;/I&gt;&lt;/P&gt;&lt;P&gt;&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; return (b);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; finish;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;New_ID2 = ^elementMod(new, old);&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 03 Apr 2012 12:10:55 GMT</pubDate>
    <dc:creator>Rick_SAS</dc:creator>
    <dc:date>2012-04-03T12:10:55Z</dc:date>
    <item>
      <title>Common elements in two vectors</title>
      <link>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Common-elements-in-two-vectors/m-p/53851#M309</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have a question in regard to finding the common elements in two vectors.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have a column vector of tickers for a stock index. I have a loop over time which does some calculations at each day. &lt;/P&gt;&lt;P&gt;At each day inside the time loop, I have around 40 tickers, which are repeating again and again through time. &lt;/P&gt;&lt;P&gt;However, in some days new stocks may introduce to the index so the column vector of tickers at day t may have one of two tickers more than the column vector of tickers at day t-1. &lt;/P&gt;&lt;P&gt;For example, as it can be seen in the following table, at day t, NOP enters into the index for the first time. To observe these new stocks, I want to introduce a new variable as NEW which gives me zero for each common ticker and one for the new tickers which enter the index for the first time. So, how to define variable NEW in SAS/IML environment?&lt;/P&gt;&lt;P&gt;Your advice is appreciated. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;TABLE border="1" cellpadding="3" cellspacing="0" class="jiveBorder" height="369" style="border: 1px solid #000000; width: 273px;"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TH align="center" style="background-color: #6690bc;" valign="middle"&gt;&lt;SPAN style="color: #ffffff;"&gt;&lt;STRONG&gt;DAY (T-1)&lt;BR /&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/TH&gt;&lt;TH align="center" style="background-color: #6690bc;" valign="middle"&gt;&lt;SPAN style="color: #ffffff;"&gt;&lt;STRONG&gt;DAY (T)&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/TH&gt;&lt;TH align="center" style="background-color: #6690bc;" valign="middle"&gt;&lt;SPAN style="color: #ffffff;"&gt;&lt;STRONG&gt;NEW&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/TH&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;AXA&lt;/TD&gt;&lt;TD&gt;AXA&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;0&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;AIA&lt;/TD&gt;&lt;TD&gt;AIA&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;BCD&lt;/TD&gt;&lt;TD&gt;BCD&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;FEJ&lt;/TD&gt;&lt;TD&gt;FEJ&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;JUD&lt;/TD&gt;&lt;TD&gt;JUD&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;KID&lt;/TD&gt;&lt;TD&gt;KID&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;LOD&lt;/TD&gt;&lt;TD&gt;LOD&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;MIN&lt;/TD&gt;&lt;TD&gt;MIN&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;OOP&lt;/TD&gt;&lt;TD&gt;NOP&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;QRE&lt;/TD&gt;&lt;TD&gt;OOP&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;TRE&lt;/TD&gt;&lt;TD&gt;QRE&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;WTF&lt;/TD&gt;&lt;TD&gt;TRE&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;XDE&lt;/TD&gt;&lt;TD&gt;WTF&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;ZSW&lt;/TD&gt;&lt;TD&gt;XDE&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&lt;BR /&gt;&lt;/TD&gt;&lt;TD&gt;ZSW&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 03 Apr 2012 02:27:36 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Common-elements-in-two-vectors/m-p/53851#M309</guid>
      <dc:creator>Reza</dc:creator>
      <dc:date>2012-04-03T02:27:36Z</dc:date>
    </item>
    <item>
      <title>Re: Common elements in two vectors</title>
      <link>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Common-elements-in-two-vectors/m-p/53852#M310</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;STRONG&gt;&lt;SPAN style="color: #000080; font-size: 10pt; font-family: Courier New;"&gt;One solution:&lt;/SPAN&gt; &lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data stocks;&lt;BR /&gt;input old $4. new $4.;&lt;BR /&gt;cards;&lt;BR /&gt;AXA AXA 0 &lt;BR /&gt;AIA AIA 0 &lt;BR /&gt;BCD BCD 0 &lt;BR /&gt;FEJ FEJ 0 &lt;BR /&gt;JUD JUD 0 &lt;BR /&gt;KID KID 0 &lt;BR /&gt;LOD LOD 0 &lt;BR /&gt;MIN MIN 0 &lt;BR /&gt;OOP NOP 1 &lt;BR /&gt;QRE OOP 0 &lt;BR /&gt;TRE QRE 0 &lt;BR /&gt;WTF TRE 0 &lt;BR /&gt;XDE WTF 0 &lt;BR /&gt;ZSW XDE 0 &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ZSW 0 &lt;BR /&gt;;&lt;BR /&gt;quit;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/* ~~~~~~~~~~~~~~~~~~~~~ IML Code ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */&lt;/P&gt;&lt;P&gt;proc iml;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;use stocks;&lt;BR /&gt;read all;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Valid_Rows = nrow( old[loc(old ^= '')] );&lt;BR /&gt;Valid_Old = old[loc(old ^= '')];&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Mesh = repeat(new,1,valid_rows); &lt;/P&gt;&lt;P&gt;old_reshape = repeat(valid_old,1,nrow(mesh))`;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;New_ID = (old_reshape = mesh)[,+] = 0;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;print new New_ID;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #008080; font-size: 10pt; font-family: Courier New;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #008080; font-size: 10pt; font-family: Courier New;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #008080; font-size: 10pt; font-family: Courier New;"&gt; &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;SPAN style="font-family: Courier New; color: #000080; font-size: 10pt;"&gt;&lt;SPAN style="color: #000080; font-size: 10pt; font-family: Courier New;"&gt;&lt;P&gt;&lt;/P&gt;&lt;/SPAN&gt;&lt;P&gt;&lt;/P&gt;&lt;/SPAN&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 03 Apr 2012 07:24:44 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Common-elements-in-two-vectors/m-p/53852#M310</guid>
      <dc:creator>Ajay88</dc:creator>
      <dc:date>2012-04-03T07:24:44Z</dc:date>
    </item>
    <item>
      <title>Re: Common elements in two vectors</title>
      <link>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Common-elements-in-two-vectors/m-p/53853#M311</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I suggest using the &lt;A href="http://support.sas.com/documentation/cdl/en/imlug/64248/HTML/default/viewer.htm#imlug_langref_sect083.htm"&gt;ELEMENT function&lt;/A&gt; in SAS/IML 9.3.&lt;/P&gt;&lt;P&gt;To use Ajay's data:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;/* b = elements of NEW that are elements of OLD */&lt;/P&gt;&lt;P&gt;b = element(new, old); &lt;/P&gt;&lt;P&gt;New_ID = ^b; /* change 0 &amp;lt;--&amp;gt; 1 */&lt;/P&gt;&lt;P&gt;print new New_ID;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you don't have SAS 9.3, I can suggest another way. &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 03 Apr 2012 10:37:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Common-elements-in-two-vectors/m-p/53853#M311</guid>
      <dc:creator>Rick_SAS</dc:creator>
      <dc:date>2012-04-03T10:37:09Z</dc:date>
    </item>
    <item>
      <title>Common elements in two vectors</title>
      <link>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Common-elements-in-two-vectors/m-p/53854#M312</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Yes please, I am using SAS 9.2.&lt;/P&gt;&lt;P&gt;For further clarification, I have column vectors DAY(T) and DAY(T-1) and want to produce the column NEW by having a loop over DAYs columns. &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 03 Apr 2012 10:57:17 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Common-elements-in-two-vectors/m-p/53854#M312</guid>
      <dc:creator>Reza</dc:creator>
      <dc:date>2012-04-03T10:57:17Z</dc:date>
    </item>
    <item>
      <title>Common elements in two vectors</title>
      <link>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Common-elements-in-two-vectors/m-p/53855#M313</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt; Here's a SAS/IML module that duplicates the functionality of the ELEMENT function that was introduced in SAS/IML 9.3:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; start elementMod(x, y);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ncol(x)=0 then return(_NULL_);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b = j(nrow(x), ncol(x), 0);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ncol(y)=0 then return(b);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; u = xsect(x, y);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ncol(u)=0 then return(b);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; do i = 1 to ncol(u);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b = bor(b, (x=u&lt;I&gt;));&lt;/I&gt;&lt;/P&gt;&lt;P&gt;&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; return (b);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; finish;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;New_ID2 = ^elementMod(new, old);&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 03 Apr 2012 12:10:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-IML-Software-and-Matrix/Common-elements-in-two-vectors/m-p/53855#M313</guid>
      <dc:creator>Rick_SAS</dc:creator>
      <dc:date>2012-04-03T12:10:55Z</dc:date>
    </item>
  </channel>
</rss>

