<?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: split one data set into many in SAS Programming</title>
    <link>https://communities.sas.com/t5/SAS-Programming/split-one-data-set-into-many/m-p/504261#M134919</link>
    <description>&lt;P&gt;Hello,&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/159549"&gt;@Ronein&lt;/a&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I change that row and it has worked:&lt;/P&gt;&lt;LI-CODE lang="sas"&gt;&amp;lt;span class="token keyword"&amp;gt;set&amp;lt;/span&amp;gt; sashelp&amp;lt;span class="token punctuation"&amp;gt;.&amp;lt;/span&amp;gt;cars&amp;lt;span class="token punctuation"&amp;gt;(&amp;lt;/span&amp;gt;&amp;lt;span class="token statement"&amp;gt;where&amp;lt;/span&amp;gt;&amp;lt;span class="token operator"&amp;gt;=&amp;lt;/span&amp;gt;&amp;lt;span class="token punctuation"&amp;gt;(&amp;lt;/span&amp;gt;origin&amp;lt;span class="token operator"&amp;gt;=&amp;lt;/span&amp;gt;&amp;lt;span class="token string"&amp;gt;'tt'&amp;lt;/span&amp;gt;&amp;lt;span class="token punctuation"&amp;gt;)&amp;lt;/span&amp;gt;&amp;lt;span class="token punctuation"&amp;gt;)&amp;lt;/span&amp;gt;&amp;lt;span class="token punctuation"&amp;gt;;&amp;lt;/span&amp;gt;&lt;/LI-CODE&gt;&lt;P&gt;to:&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;set sashelp.cars(where=(origin="&amp;amp;tt")); &lt;/PRE&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql noprint;
 select distinct ORIGIN into :valList separated by '+' from SASHELP.CARS trimmed;
quit;
%put &amp;amp;valList;
/*Asia+Europe+USA*/

%let No_arguments=%sysfunc(countw(%str(&amp;amp;valList.),'+'));
%put &amp;amp;No_arguments.;


%macro mmacro1;
%do i=1 %to &amp;amp;No_arguments.;
%let tt=%scan(&amp;amp;valList.,&amp;amp;i.,+);
data out_&amp;amp;tt.; 
set sashelp.cars(where=(origin="&amp;amp;tt")); 
run; 
%end;
%mend;&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Mon, 15 Oct 2018 12:17:15 GMT</pubDate>
    <dc:creator>DavidBesaev</dc:creator>
    <dc:date>2018-10-15T12:17:15Z</dc:date>
    <item>
      <title>split one data set into many</title>
      <link>https://communities.sas.com/t5/SAS-Programming/split-one-data-set-into-many/m-p/498654#M132570</link>
      <description>&lt;P&gt;Hello&lt;/P&gt;&lt;P&gt;I want to split one data set into multiple data sets.&lt;/P&gt;&lt;P&gt;Please find code for 3 ways to do it.&lt;/P&gt;&lt;P&gt;Why way3 is not working? The output data sets are empty.Why???&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;/*Way1*/
DATA out_Asia;
 set sashelp.cars(where=(origin='Asia'));
run;
DATA out_Europe;
 set sashelp.cars(where=(origin='Europe'));
run;
DATA out_USA;
 set sashelp.cars(where=(origin='USA'));
run;


/*Way2*/
data out_Asia   out_Europe  out_USA;
set sashelp.cars;
   if origin='Asia' then output out_Asia;
   else IF origin='Europe' then output out_Europe;
   else IF origin='USA' then output out_USA;
Run;


/*Way3*/
proc sql noprint;
 select distinct ORIGIN into :valList separated by '+' from SASHELP.CARS trimmed;
quit;
%put &amp;amp;valList;
/*Asia+Europe+USA*/

%let No_arguments=%sysfunc(countw(%str(&amp;amp;valList.),'+'));
%put &amp;amp;No_arguments.;


%macro mmacro1;
%do i=1 %to &amp;amp;No_arguments.;
%let tt=%scan(&amp;amp;valList.,&amp;amp;i.,+);
data out_&amp;amp;tt.; 
set sashelp.cars(where=(origin='tt')); 
run; 
%end;
%mend;
%mmacro1;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 25 Sep 2018 07:14:30 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/split-one-data-set-into-many/m-p/498654#M132570</guid>
      <dc:creator>Ronein</dc:creator>
      <dc:date>2018-09-25T07:14:30Z</dc:date>
    </item>
    <item>
      <title>Re: split one data set into many</title>
      <link>https://communities.sas.com/t5/SAS-Programming/split-one-data-set-into-many/m-p/498656#M132571</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You forgot to resolve the macrovariable in the where condition&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE class=" language-sas"&gt;&lt;CODE class="  language-sas"&gt;&lt;SPAN class="token statement"&gt;where&lt;/SPAN&gt;&lt;SPAN class="token operator"&gt;=&lt;/SPAN&gt;&lt;SPAN class="token punctuation"&gt;(&lt;/SPAN&gt;origin&lt;SPAN class="token operator"&gt;="&amp;amp;&lt;/SPAN&gt;&lt;SPAN class="token string"&gt;tt.")&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Note that double quotes are necessary for the resolution to take place.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;As often said on this forum, splitting a dataset is rarely necessary as most SAS procedures&lt;/P&gt;
&lt;P&gt;allow by group processing.&lt;/P&gt;</description>
      <pubDate>Tue, 25 Sep 2018 07:29:43 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/split-one-data-set-into-many/m-p/498656#M132571</guid>
      <dc:creator>gamotte</dc:creator>
      <dc:date>2018-09-25T07:29:43Z</dc:date>
    </item>
    <item>
      <title>Re: split one data set into many</title>
      <link>https://communities.sas.com/t5/SAS-Programming/split-one-data-set-into-many/m-p/498657#M132572</link>
      <description>&lt;P&gt;And what benefit will you get from such a process that offsets the downsides of: larger storage needs, slower processing, more complex less robust coding?&amp;nbsp; In almost all cases there is not benefit which outweighs those downsides.&amp;nbsp; Use SAS by group processing, its what it is for.&lt;/P&gt;</description>
      <pubDate>Tue, 25 Sep 2018 07:39:47 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/split-one-data-set-into-many/m-p/498657#M132572</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2018-09-25T07:39:47Z</dc:date>
    </item>
    <item>
      <title>Re: split one data set into many</title>
      <link>https://communities.sas.com/t5/SAS-Programming/split-one-data-set-into-many/m-p/504261#M134919</link>
      <description>&lt;P&gt;Hello,&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/159549"&gt;@Ronein&lt;/a&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I change that row and it has worked:&lt;/P&gt;&lt;LI-CODE lang="sas"&gt;&amp;lt;span class="token keyword"&amp;gt;set&amp;lt;/span&amp;gt; sashelp&amp;lt;span class="token punctuation"&amp;gt;.&amp;lt;/span&amp;gt;cars&amp;lt;span class="token punctuation"&amp;gt;(&amp;lt;/span&amp;gt;&amp;lt;span class="token statement"&amp;gt;where&amp;lt;/span&amp;gt;&amp;lt;span class="token operator"&amp;gt;=&amp;lt;/span&amp;gt;&amp;lt;span class="token punctuation"&amp;gt;(&amp;lt;/span&amp;gt;origin&amp;lt;span class="token operator"&amp;gt;=&amp;lt;/span&amp;gt;&amp;lt;span class="token string"&amp;gt;'tt'&amp;lt;/span&amp;gt;&amp;lt;span class="token punctuation"&amp;gt;)&amp;lt;/span&amp;gt;&amp;lt;span class="token punctuation"&amp;gt;)&amp;lt;/span&amp;gt;&amp;lt;span class="token punctuation"&amp;gt;;&amp;lt;/span&amp;gt;&lt;/LI-CODE&gt;&lt;P&gt;to:&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;set sashelp.cars(where=(origin="&amp;amp;tt")); &lt;/PRE&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql noprint;
 select distinct ORIGIN into :valList separated by '+' from SASHELP.CARS trimmed;
quit;
%put &amp;amp;valList;
/*Asia+Europe+USA*/

%let No_arguments=%sysfunc(countw(%str(&amp;amp;valList.),'+'));
%put &amp;amp;No_arguments.;


%macro mmacro1;
%do i=1 %to &amp;amp;No_arguments.;
%let tt=%scan(&amp;amp;valList.,&amp;amp;i.,+);
data out_&amp;amp;tt.; 
set sashelp.cars(where=(origin="&amp;amp;tt")); 
run; 
%end;
%mend;&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Mon, 15 Oct 2018 12:17:15 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Programming/split-one-data-set-into-many/m-p/504261#M134919</guid>
      <dc:creator>DavidBesaev</dc:creator>
      <dc:date>2018-10-15T12:17:15Z</dc:date>
    </item>
  </channel>
</rss>

