<?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 set two data sets? in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/How-to-set-two-data-sets/m-p/92736#M257495</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;BR /&gt;I have&amp;nbsp; two data sets A and B; A has 1000 observations and B has 40 observations. They have no commom variables. I want to create a data set C that has 1000x40 observations, for each observation of data A having 40 observations of data B. My code is below:&lt;/P&gt;&lt;P&gt;Data C;&lt;/P&gt;&lt;P&gt;do i=1 to 1000;&lt;/P&gt;&lt;P&gt;&amp;nbsp; set A;&lt;/P&gt;&lt;P&gt;do j=1 to 40&lt;/P&gt;&lt;P&gt;set B;&lt;/P&gt;&lt;P&gt;output;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;Run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Data c has only 40 observations. The log display: only 2 observations from data A; 40 observations from B;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can you help me to fix this problem? Thank you,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Zhu&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 24 Apr 2012 03:58:13 GMT</pubDate>
    <dc:creator>jmbnzhu</dc:creator>
    <dc:date>2012-04-24T03:58:13Z</dc:date>
    <item>
      <title>How to set two data sets?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-set-two-data-sets/m-p/92736#M257495</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;BR /&gt;I have&amp;nbsp; two data sets A and B; A has 1000 observations and B has 40 observations. They have no commom variables. I want to create a data set C that has 1000x40 observations, for each observation of data A having 40 observations of data B. My code is below:&lt;/P&gt;&lt;P&gt;Data C;&lt;/P&gt;&lt;P&gt;do i=1 to 1000;&lt;/P&gt;&lt;P&gt;&amp;nbsp; set A;&lt;/P&gt;&lt;P&gt;do j=1 to 40&lt;/P&gt;&lt;P&gt;set B;&lt;/P&gt;&lt;P&gt;output;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;Run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Data c has only 40 observations. The log display: only 2 observations from data A; 40 observations from B;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can you help me to fix this problem? Thank you,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Zhu&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 24 Apr 2012 03:58:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-set-two-data-sets/m-p/92736#M257495</guid>
      <dc:creator>jmbnzhu</dc:creator>
      <dc:date>2012-04-24T03:58:13Z</dc:date>
    </item>
    <item>
      <title>Re: How to set two data sets?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-set-two-data-sets/m-p/92737#M257496</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;data c;&lt;/P&gt;&lt;P&gt;set data A;&lt;/P&gt;&lt;P&gt;do i=1 to n;&lt;/P&gt;&lt;P&gt; set data B nobs=n point=i;&lt;/P&gt;&lt;P&gt;output;&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 24 Apr 2012 04:16:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-set-two-data-sets/m-p/92737#M257496</guid>
      <dc:creator>jmbnzhu</dc:creator>
      <dc:date>2012-04-24T04:16:52Z</dc:date>
    </item>
    <item>
      <title>Re: How to set two data sets?</title>
      <link>https://communities.sas.com/t5/SAS-Programming/How-to-set-two-data-sets/m-p/92738#M257497</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Looks like you have it figured out yourself by using a classic data step way. Although I think it is worth mentioning that for this kind of task, SQL seems to have a native edge, as SQL join generates Cartesian products to start with.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;proc sql;&lt;/P&gt;&lt;P&gt;create table c as&lt;/P&gt;&lt;P&gt;select * from a,b;&lt;/P&gt;&lt;P&gt;quit;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BTW, with the advent of Hash(), data step has been granted the similar power as SQL join:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data c (drop=_:);&lt;/P&gt;&lt;P&gt;&amp;nbsp; if _n_=1 then do; &lt;/P&gt;&lt;P&gt;&amp;nbsp; set a (obs=1);&lt;/P&gt;&lt;P&gt;dcl hash h(dataset:'a', ordered:'a');&lt;/P&gt;&lt;P&gt;h.definekey(all:'y');&lt;/P&gt;&lt;P&gt;h.definedone();&lt;/P&gt;&lt;P&gt;dcl hiter hi('h');&lt;/P&gt;&lt;P&gt;&amp;nbsp; end;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp; set b;&lt;/P&gt;&lt;P&gt;&amp;nbsp; _rc=hi.first();&lt;/P&gt;&lt;P&gt;&amp;nbsp; do while (_rc=0);&lt;/P&gt;&lt;P&gt;output;&lt;/P&gt;&lt;P&gt;_rc=hi.next();&lt;/P&gt;&lt;P&gt;end;&lt;/P&gt;&lt;P&gt;run;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Kindly regards,&lt;/P&gt;&lt;P&gt;Haikuo&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 24 Apr 2012 11:51:10 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/How-to-set-two-data-sets/m-p/92738#M257497</guid>
      <dc:creator>Haikuo</dc:creator>
      <dc:date>2012-04-24T11:51:10Z</dc:date>
    </item>
  </channel>
</rss>

