<?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: SAS's Macro: Create dataset with several dataset one observation-one variable in SAS Enterprise Guide</title>
    <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/SAS-s-Macro-Create-dataset-with-several-dataset-one-observation/m-p/486294#M31493</link>
    <description>&lt;P&gt;&lt;SPAN&gt;Thanks for the reply. Of course, if I can obtain the results in a single table with PROC MEANS, it would be better; but I do not know if it is possible. I have a database with the variables j, i and another variable X (numeric). Is there any way to obtain with PROC MEANS a database for each value of J that contains i variables equal to the average of X for i = 1,2,3 ....?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;DATA test ; &lt;BR /&gt; input j i X ; &lt;BR /&gt; datalines ; &lt;BR /&gt;1 1 85&lt;BR /&gt;1 2 96&lt;BR /&gt;1 3 100&lt;BR /&gt;2 1 6&lt;BR /&gt;2 2 8&lt;BR /&gt;2 3 9&lt;BR /&gt;3 1 12&lt;BR /&gt;3 2 15&lt;BR /&gt;3 3 18&lt;BR /&gt;4 1 6 &lt;BR /&gt;4 2 5 &lt;BR /&gt;4 3 8&lt;BR /&gt;1 1 89&lt;BR /&gt;1 2 101&lt;BR /&gt;1 3 99&lt;BR /&gt;2 1 7&lt;BR /&gt;2 2 5&lt;BR /&gt;2 3 6&lt;BR /&gt;3 1 15&lt;BR /&gt;3 2 19&lt;BR /&gt;4 1 4 &lt;BR /&gt;4 2 1 &lt;BR /&gt;4 3 2&lt;BR /&gt;; &lt;BR /&gt;run ; &lt;BR /&gt;proc sort data=test; &lt;BR /&gt; by j i ; &lt;BR /&gt;run ; &lt;/PRE&gt;&lt;P&gt;&lt;SPAN&gt;I would like to obtain for each value j = 1,2,3,4 a database with averages such as for j = 1 for exemple:&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;j=1&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Mean_1&lt;/TD&gt;&lt;TD&gt;Mean_2&lt;/TD&gt;&lt;TD&gt;Mean_3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;87&lt;/TD&gt;&lt;TD&gt;98,5&lt;/TD&gt;&lt;TD&gt;99,5&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;it is possible to do this with PROC MEANS ?&lt;/SPAN&gt;&lt;/P&gt;</description>
    <pubDate>Mon, 13 Aug 2018 08:47:55 GMT</pubDate>
    <dc:creator>luciacossaro</dc:creator>
    <dc:date>2018-08-13T08:47:55Z</dc:date>
    <item>
      <title>SAS's Macro: Create dataset with several dataset one observation-one variable</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/SAS-s-Macro-Create-dataset-with-several-dataset-one-observation/m-p/486260#M31489</link>
      <description>&lt;P&gt;Hi&amp;nbsp;!&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I need to create several datasets with a SAS’s Macro but I could not do it.&lt;/P&gt;&lt;P&gt;I have a dataset with “I” variables group by variable “j” and i get many statistics for each one with Proc Means.&lt;/P&gt;&lt;P&gt;At the end, I have for each variable j value, &amp;nbsp;i datasets with one variable and one observation, like this :&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;J=1&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Dataset 1,1&lt;/TD&gt;&lt;TD&gt;Dataset 1,2&lt;/TD&gt;&lt;TD&gt;Dataset 1,3&lt;/TD&gt;&lt;TD&gt;….&lt;/TD&gt;&lt;TD&gt;Dataset 1,i&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Mean_11&lt;/TD&gt;&lt;TD&gt;Mean_12&lt;/TD&gt;&lt;TD&gt;Mean_13&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;Mean_1i&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5,5&lt;/TD&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;TD&gt;45&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;12&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;J=2&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Dataset 2,1&lt;/TD&gt;&lt;TD&gt;Dataset 2,2&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;….&lt;/TD&gt;&lt;TD&gt;Dataset 2,i&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Mean_21&lt;/TD&gt;&lt;TD&gt;Mean_22&lt;/TD&gt;&lt;TD&gt;Mean_23&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;Mean_2i&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;87&lt;/TD&gt;&lt;TD&gt;85&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;65&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;...&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;&amp;nbsp;...&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;J=j&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Dataset j,1&lt;/TD&gt;&lt;TD&gt;Dataset j,2&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;….&lt;/TD&gt;&lt;TD&gt;Dataset j,i&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Mean_j1&lt;/TD&gt;&lt;TD&gt;Mean_j2&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;Mean_ji&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;15&lt;/TD&gt;&lt;TD&gt;5&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&lt;P&gt;23&lt;/P&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I need to create only one table with all&amp;nbsp; of one variable’s datasets for each j value group.&lt;/P&gt;&lt;P&gt;Something like that :&lt;/P&gt;&lt;P&gt;Dataset j=1,&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;Mean_11&lt;/TD&gt;&lt;TD&gt;Mean_12&lt;/TD&gt;&lt;TD&gt;Mean_13&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;Mean_1i&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;5,5&lt;/TD&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;TD&gt;45&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;12&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;&lt;/P&gt;&lt;P&gt;I tried that but it do not work:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;%let j=1 ; 
%macro all;
data test_t&amp;amp;j ; 
	set 
	%do i=1 %to 10 ; 
	 mean_&amp;amp;j&amp;amp;i sum_&amp;amp;j&amp;amp;i 
	%end ; 
run ; 
%mend ; 
%all;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Could somebody help me please to find where I have wrong ? There is a way to do a DO loop for the value of j&amp;nbsp;to avoid making a macro for each value of j ?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Thank you very much !&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Mon, 13 Aug 2018 06:14:38 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/SAS-s-Macro-Create-dataset-with-several-dataset-one-observation/m-p/486260#M31489</guid>
      <dc:creator>luciacossaro</dc:creator>
      <dc:date>2018-08-13T06:14:38Z</dc:date>
    </item>
    <item>
      <title>Re: SAS's Macro: Create dataset with several dataset one observation-one variable</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/SAS-s-Macro-Create-dataset-with-several-dataset-one-observation/m-p/486277#M31492</link>
      <description>&lt;P&gt;I do not understand your question.&amp;nbsp; Present test data in the form of a datastep, and show what the output should be.&amp;nbsp; Can you not add another do loop?&lt;/P&gt;
&lt;PRE&gt;%macro all (j=);
  %do e=&amp;amp;j. %to 10;
    data test_t&amp;amp;j ; 
	set 
	%do i=1 %to 10 ; 
	   mean_&amp;amp;j&amp;amp;i sum_&amp;amp;j&amp;amp;i 
	%end ; 
    run ; 
  %end;
%mend ; 
%all (j=1);&lt;/PRE&gt;
&lt;P&gt;However, that being said, this is bad idea.&amp;nbsp; It is rarely a good idea to split data up into lots of small datasets&amp;nbsp; - just this bit of code you present shows how much more difficult programming with such a thing is.&amp;nbsp; SAS is built on the fundamental concept of by group processing, i.e. add groupings to your data then and then use those in one dataset with one procedure for maximum speed and resource usage.&amp;nbsp; For instance, say I wanted to do a proc means on ages for M or F in sashelp.class, I could spit them into two - taking more disk space, and doubling the processing time, and having messy code, or I could do:&lt;/P&gt;
&lt;PRE&gt;proc means data=sashelp.class;
  by sex;
  var age;
run;&lt;/PRE&gt;</description>
      <pubDate>Mon, 13 Aug 2018 08:08:06 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/SAS-s-Macro-Create-dataset-with-several-dataset-one-observation/m-p/486277#M31492</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2018-08-13T08:08:06Z</dc:date>
    </item>
    <item>
      <title>Re: SAS's Macro: Create dataset with several dataset one observation-one variable</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/SAS-s-Macro-Create-dataset-with-several-dataset-one-observation/m-p/486294#M31493</link>
      <description>&lt;P&gt;&lt;SPAN&gt;Thanks for the reply. Of course, if I can obtain the results in a single table with PROC MEANS, it would be better; but I do not know if it is possible. I have a database with the variables j, i and another variable X (numeric). Is there any way to obtain with PROC MEANS a database for each value of J that contains i variables equal to the average of X for i = 1,2,3 ....?&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;DATA test ; &lt;BR /&gt; input j i X ; &lt;BR /&gt; datalines ; &lt;BR /&gt;1 1 85&lt;BR /&gt;1 2 96&lt;BR /&gt;1 3 100&lt;BR /&gt;2 1 6&lt;BR /&gt;2 2 8&lt;BR /&gt;2 3 9&lt;BR /&gt;3 1 12&lt;BR /&gt;3 2 15&lt;BR /&gt;3 3 18&lt;BR /&gt;4 1 6 &lt;BR /&gt;4 2 5 &lt;BR /&gt;4 3 8&lt;BR /&gt;1 1 89&lt;BR /&gt;1 2 101&lt;BR /&gt;1 3 99&lt;BR /&gt;2 1 7&lt;BR /&gt;2 2 5&lt;BR /&gt;2 3 6&lt;BR /&gt;3 1 15&lt;BR /&gt;3 2 19&lt;BR /&gt;4 1 4 &lt;BR /&gt;4 2 1 &lt;BR /&gt;4 3 2&lt;BR /&gt;; &lt;BR /&gt;run ; &lt;BR /&gt;proc sort data=test; &lt;BR /&gt; by j i ; &lt;BR /&gt;run ; &lt;/PRE&gt;&lt;P&gt;&lt;SPAN&gt;I would like to obtain for each value j = 1,2,3,4 a database with averages such as for j = 1 for exemple:&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;TABLE border="0" cellspacing="0" cellpadding="0"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;j=1&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;TD&gt;&amp;nbsp;&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;Mean_1&lt;/TD&gt;&lt;TD&gt;Mean_2&lt;/TD&gt;&lt;TD&gt;Mean_3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;87&lt;/TD&gt;&lt;TD&gt;98,5&lt;/TD&gt;&lt;TD&gt;99,5&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;it is possible to do this with PROC MEANS ?&lt;/SPAN&gt;&lt;/P&gt;</description>
      <pubDate>Mon, 13 Aug 2018 08:47:55 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/SAS-s-Macro-Create-dataset-with-several-dataset-one-observation/m-p/486294#M31493</guid>
      <dc:creator>luciacossaro</dc:creator>
      <dc:date>2018-08-13T08:47:55Z</dc:date>
    </item>
    <item>
      <title>Re: SAS's Macro: Create dataset with several dataset one observation-one variable</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/SAS-s-Macro-Create-dataset-with-several-dataset-one-observation/m-p/486299#M31494</link>
      <description>&lt;P&gt;What groupings are we talking here, all j together, all i together?&amp;nbsp; Something like this, but just need to set groupings:&lt;/P&gt;
&lt;PRE&gt;data test; 
  input j i x; 
datalines; 
1 1 85
1 2 96
1 3 100
2 1 6
2 2 8
2 3 9
3 1 12
3 2 15
3 3 18
4 1 6 
4 2 5 
4 3 8
1 1 89
1 2 101
1 3 99
2 1 7
2 2 5
2 3 6
3 1 15
3 2 19
4 1 4 
4 2 1 
4 3 2
; 
run;
data want;
  set test;
  by j notsorted;
  retain tot_sum num_elem;
  if first.j then do;
    tot_sum=x;
    num_elem=1;
  end;
  else do;
    tot_sum=sum(tot_sum,x);
    num_elem=sum(num_elem,1);
  end;
  if last.j then do;
    mean=tot_sum / num_elem;
    output;
  end;
run;&lt;/PRE&gt;</description>
      <pubDate>Mon, 13 Aug 2018 09:29:20 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/SAS-s-Macro-Create-dataset-with-several-dataset-one-observation/m-p/486299#M31494</guid>
      <dc:creator>RW9</dc:creator>
      <dc:date>2018-08-13T09:29:20Z</dc:date>
    </item>
    <item>
      <title>Re: SAS's Macro: Create dataset with several dataset one observation-one variable</title>
      <link>https://communities.sas.com/t5/SAS-Enterprise-Guide/SAS-s-Macro-Create-dataset-with-several-dataset-one-observation/m-p/486397#M31502</link>
      <description>&lt;P&gt;Please consider:&lt;/P&gt;
&lt;PRE&gt;DATA test ; 
 input j i X ; 
 datalines ; 
1 1 85
1 2 96
1 3 100
2 1 6
2 2 8
2 3 9
3 1 12
3 2 15
3 3 18
4 1 6 
4 2 5 
4 3 8
1 1 89
1 2 101
1 3 99
2 1 7
2 2 5
2 3 6
3 1 15
3 2 19
4 1 4 
4 2 1 
4 3 2
; 
run ; 

proc summary data=test;
   class j i;
   var x;
   output out=summary mean= std=/autoname;
run;&lt;/PRE&gt;
&lt;P&gt;I added another statistic std just to show the possibility.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;The output data set summary will have summaries (mean and std) of x for all of the records, each value of I, each value of j and combinations of j and I. There is a special variable in the data named _type_ that you can use to indicate which specific summaries you want. Alternatively there are options using the TYPES and WAYS options to build desired combinations of variables on the CLASS statement.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Proc Summary and Means share options, I just prefer summary.&lt;/P&gt;</description>
      <pubDate>Mon, 13 Aug 2018 15:52:15 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Enterprise-Guide/SAS-s-Macro-Create-dataset-with-several-dataset-one-observation/m-p/486397#M31502</guid>
      <dc:creator>ballardw</dc:creator>
      <dc:date>2018-08-13T15:52:15Z</dc:date>
    </item>
  </channel>
</rss>

