<?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>Thema "Re: Tabelle in Gruppen aufteilen unter Bedingungen" in CoDe SAS German</title>
    <link>https://communities.sas.com/t5/CoDe-SAS-German/Tabelle-in-Gruppen-aufteilen-unter-Bedingungen/m-p/764115#M2699</link>
    <description>&lt;P&gt;Ein Vorschlag:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt; data work.have;
   infile datalines dsd truncover;
   input Name $9. Group $1.;
 datalines;
 Alfred  A 
 Alice   B 
 Barbara B 
 Carol   C 
 Henry   C 
 Paul    D 
;

proc summary data=work.have nway;
   class Group;
   output out= work.Size(drop= _type_ rename=(_freq_=count));
run;

%global schwelle;
%let schwelle = 2;


data work.ReGroup;
   set work.Size end=jobDone;
   
   length 
      Dataset $ 42
      DatasetList $ 4200
   ;
   
   retain DatasetList;
   
   Dataset = catx('_', ifc(count &amp;lt; &amp;amp;schwelle., 'ZZZ', Group), Count, 'Ende');
   
   if index(DatasetList, trim(Dataset)) = 0 then DatasetList = catx(' ', DatasetList, Dataset);
   
   if jobDone then call symputx('datasetList', DatasetList);
   
   drop DatasetList;
run;

data _null_;
   set work.ReGroup end= jobDone;
   
   if _n_ = 1 then do;
      call execute(cat('data ', "&amp;amp;datasetList.", ';'));
      call execute('set work.have;');
      call execute('select (Group);');
   end;
   
   call execute(catx(' ', 'when (', quote(trim(Group)), ') output', Dataset, ';'));
   
   if jobDone then do;
      call execute('end; run;');
   end;
run;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
    <pubDate>Thu, 26 Aug 2021 06:40:18 GMT</pubDate>
    <dc:creator>andreas_lds</dc:creator>
    <dc:date>2021-08-26T06:40:18Z</dc:date>
    <item>
      <title>Tabelle in Gruppen aufteilen unter Bedingungen</title>
      <link>https://communities.sas.com/t5/CoDe-SAS-German/Tabelle-in-Gruppen-aufteilen-unter-Bedingungen/m-p/763875#M2694</link>
      <description>&lt;P&gt;Hallo zusammen,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;für eine Verteilung von Daten habe ich die Anforderung das eine Tabelle auf verschiedene Tabellen, deren Anzahl je nach enthaltenen Gruppen variieren kann, aufgeteilt werden muss.&lt;/P&gt;&lt;P&gt;Hier habe ich auch einen Code der funktioniert:&lt;/P&gt;&lt;PRE&gt;&lt;CODE class=" language-sas"&gt; data WORK.CLASS;
   infile datalines dsd truncover;
   input Name $9. Group $1.;
 datalines;
 Alfred  A 
 Alice   B 
 Barbara B 
 Carol   C 
 Henry   C 
 Paul    D 
;
 run;

 %MACRO gruppen(datei1, pool);
PROC SQL NOPRINT;
SELECT DISTINCT &amp;amp;pool INTO :pools SEPARATED BY ' '
FROM &amp;amp;datei1;
QUIT;

%DO i=1 %TO &amp;amp;SQLOBS;
%LET group=%SCAN(&amp;amp;pools, &amp;amp;i);
%PUT &amp;amp;i: *&amp;amp;group*;
proc sql noprint;
select distinct count(*) into :Menge TRIMMED from &amp;amp;datei1  where &amp;amp;pool = "&amp;amp;group" 
group by &amp;amp;pool;
quit;

proc sql;
create table &amp;amp;group._&amp;amp;Menge._Ende  as select * from &amp;amp;datei1  where &amp;amp;pool = "&amp;amp;group" ;
quit;

%END;
%MEND;
%gruppen(WORK.class, group);&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;nun mein Problem:&lt;/P&gt;&lt;P&gt;Wenn die Menge in den einzelnen Gruppen einen bestimmten Wert unterschreitet sollen diese Gruppen automatisch zu einer Tabelle zusammengefasst werden.&lt;/P&gt;&lt;P&gt;In den Beispieldaten oben sollten die gruppen A + D zu einer Tabelle zusammengefasst sein und die Gruppen B und C jeweils in einer eigenen Tabelle stehen.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Danke für eure Unterstützung!&lt;/P&gt;&lt;P&gt;Viele Grüße&lt;/P&gt;&lt;P&gt;Bernd&lt;/P&gt;</description>
      <pubDate>Wed, 25 Aug 2021 14:51:13 GMT</pubDate>
      <guid>https://communities.sas.com/t5/CoDe-SAS-German/Tabelle-in-Gruppen-aufteilen-unter-Bedingungen/m-p/763875#M2694</guid>
      <dc:creator>Spinner_Bernd</dc:creator>
      <dc:date>2021-08-25T14:51:13Z</dc:date>
    </item>
    <item>
      <title>Betreff: Tabelle in Gruppen aufteilen unter Bedingungen</title>
      <link>https://communities.sas.com/t5/CoDe-SAS-German/Tabelle-in-Gruppen-aufteilen-unter-Bedingungen/m-p/764049#M2695</link>
      <description>&lt;P&gt;Hallo&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/14244"&gt;@Spinner_Bernd&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;in dem Beispiel liegt es nahe, die Gruppen A und D zusammenzufassen -- &lt;EM&gt;wenn&lt;/EM&gt; man &lt;EM&gt;2&lt;/EM&gt; als den "bestimmten Wert" annimmt, den die Gruppengrößen hier unterschreiten. Weniger eindeutig würde es aber schon, wenn nur ein weiterer Satz mit &lt;FONT face="courier new,courier"&gt;Group='D'&lt;/FONT&gt; hinzukäme. Dann müsste der Satz mit&amp;nbsp;&lt;FONT face="courier new,courier"&gt;Group='A'&lt;/FONT&gt; einer der drei anderen Gruppen zugeschlagen werden. Aber welcher? Würde z. B. Gruppe C bevorzugt, wenn B und D bereits drei Sätze enthielten, C aber nur zwei? Was wäre, wenn es weitere Gruppen E, F, ..., Z mit je einem Satz gäbe? Allein auf Basis der Regel, mindestens zwei Sätze in einer Ausgabetabelle zu haben, könnte man diese alle zu einer großen Tabelle zusammenfassen. Ich vermute aber, dass andere, noch nicht genannte Regeln dagegensprechen.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Wie viele Sätze und wie viele Gruppen kann die aufzuteilende Tabelle enthalten? Wenn die Anzahlen hinreichend groß sind und unter vielen kombinatorisch möglichen Aufteilungen eine "optimale" gesucht ist (etwa eine möglichst "gleichmäßige"), könnten Methoden aus dem Modul &lt;A href="https://documentation.sas.com/doc/en/statug/15.2/statug_intro_sect020.htm" target="_blank" rel="noopener"&gt;SAS/OR&lt;/A&gt; erforderlich sein (das aber in meiner SAS-Lizenz nicht enthalten ist).&lt;/P&gt;</description>
      <pubDate>Wed, 25 Aug 2021 21:26:38 GMT</pubDate>
      <guid>https://communities.sas.com/t5/CoDe-SAS-German/Tabelle-in-Gruppen-aufteilen-unter-Bedingungen/m-p/764049#M2695</guid>
      <dc:creator>FreelanceReinh</dc:creator>
      <dc:date>2021-08-25T21:26:38Z</dc:date>
    </item>
    <item>
      <title>Re: Tabelle in Gruppen aufteilen unter Bedingungen</title>
      <link>https://communities.sas.com/t5/CoDe-SAS-German/Tabelle-in-Gruppen-aufteilen-unter-Bedingungen/m-p/764102#M2696</link>
      <description>&lt;P&gt;Moin Bernd!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Da fehlen noch ein paar Kleinigkeiten in deiner Beschreibung:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Welcher Wert muss unterschritten werden, damit eine Gruppe mit einer anderen zusammengefasst wird?&lt;/LI&gt;
&lt;LI&gt;Was soll passieren, wenn eine ungerade Anzahl von Gruppen diesen Wert unterschreitet?&lt;/LI&gt;
&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 26 Aug 2021 04:30:52 GMT</pubDate>
      <guid>https://communities.sas.com/t5/CoDe-SAS-German/Tabelle-in-Gruppen-aufteilen-unter-Bedingungen/m-p/764102#M2696</guid>
      <dc:creator>andreas_lds</dc:creator>
      <dc:date>2021-08-26T04:30:52Z</dc:date>
    </item>
    <item>
      <title>Betreff: Tabelle in Gruppen aufteilen unter Bedingungen</title>
      <link>https://communities.sas.com/t5/CoDe-SAS-German/Tabelle-in-Gruppen-aufteilen-unter-Bedingungen/m-p/764108#M2697</link>
      <description>&lt;P&gt;Hallo &lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/32733"&gt;@FreelanceReinh&lt;/a&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;die Ursprungstabelle ist variabel sie schwankt Erfahrungsgemäß zwischen 200 und 5000 Datensätzen und wird momentan auf bis zu 40 Gruppen aufgeteilt, um diese Anzahl zu reduzieren suche ich jetzt nach einer Lösung, die alle Kleinstmengen zu einer Gruppe zusammenfasst. Daher auch die Beispieldaten mit zwei Gruppen mit einem Datensatz und zwei Gruppen mit zwei Datensätzen.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Es soll nicht möglichst gleichmäßig aufgeteilt werden, sondern nach einem bestimmten Merkmal wird eine Gruppe gebildet und als seperate Tabelle gespeichert um dann in einem weiteren System weiterverarbeitet zu werden.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Viele Grüße&lt;/P&gt;&lt;P&gt;Bernd&lt;/P&gt;</description>
      <pubDate>Thu, 26 Aug 2021 05:33:09 GMT</pubDate>
      <guid>https://communities.sas.com/t5/CoDe-SAS-German/Tabelle-in-Gruppen-aufteilen-unter-Bedingungen/m-p/764108#M2697</guid>
      <dc:creator>Spinner_Bernd</dc:creator>
      <dc:date>2021-08-26T05:33:09Z</dc:date>
    </item>
    <item>
      <title>Re: Tabelle in Gruppen aufteilen unter Bedingungen</title>
      <link>https://communities.sas.com/t5/CoDe-SAS-German/Tabelle-in-Gruppen-aufteilen-unter-Bedingungen/m-p/764111#M2698</link>
      <description>&lt;P&gt;Hallo Andreas,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;es geht darum iKleinstmengen nach einer Aufteilung zusammenzufassen, in den Beispieldaten wäre das momentan 1 Datensatz, in den Realdaten wird es wohl auf einen Wert von 5-10 rauslaufen ( der Wert wird aber definitiv für alle Gruppen gleich sein)&lt;/P&gt;&lt;P&gt;Entscheidend ist nur die Menge in der einzelnen Gruppe um die Gruppe entweder seperat zu lassen oder zu einer Sammelgruppe zusammenzufassen&lt;/P&gt;&lt;P&gt;Alles unter Schwellwert =&amp;gt; eine Sammeltabelle&lt;/P&gt;&lt;P&gt;Alles über dem Schwellwert =&amp;gt; je Gruppe eine Tabelle&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Viele Grüße&lt;/P&gt;&lt;P&gt;Bernd&lt;/P&gt;</description>
      <pubDate>Thu, 26 Aug 2021 05:38:45 GMT</pubDate>
      <guid>https://communities.sas.com/t5/CoDe-SAS-German/Tabelle-in-Gruppen-aufteilen-unter-Bedingungen/m-p/764111#M2698</guid>
      <dc:creator>Spinner_Bernd</dc:creator>
      <dc:date>2021-08-26T05:38:45Z</dc:date>
    </item>
    <item>
      <title>Re: Tabelle in Gruppen aufteilen unter Bedingungen</title>
      <link>https://communities.sas.com/t5/CoDe-SAS-German/Tabelle-in-Gruppen-aufteilen-unter-Bedingungen/m-p/764115#M2699</link>
      <description>&lt;P&gt;Ein Vorschlag:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt; data work.have;
   infile datalines dsd truncover;
   input Name $9. Group $1.;
 datalines;
 Alfred  A 
 Alice   B 
 Barbara B 
 Carol   C 
 Henry   C 
 Paul    D 
;

proc summary data=work.have nway;
   class Group;
   output out= work.Size(drop= _type_ rename=(_freq_=count));
run;

%global schwelle;
%let schwelle = 2;


data work.ReGroup;
   set work.Size end=jobDone;
   
   length 
      Dataset $ 42
      DatasetList $ 4200
   ;
   
   retain DatasetList;
   
   Dataset = catx('_', ifc(count &amp;lt; &amp;amp;schwelle., 'ZZZ', Group), Count, 'Ende');
   
   if index(DatasetList, trim(Dataset)) = 0 then DatasetList = catx(' ', DatasetList, Dataset);
   
   if jobDone then call symputx('datasetList', DatasetList);
   
   drop DatasetList;
run;

data _null_;
   set work.ReGroup end= jobDone;
   
   if _n_ = 1 then do;
      call execute(cat('data ', "&amp;amp;datasetList.", ';'));
      call execute('set work.have;');
      call execute('select (Group);');
   end;
   
   call execute(catx(' ', 'when (', quote(trim(Group)), ') output', Dataset, ';'));
   
   if jobDone then do;
      call execute('end; run;');
   end;
run;
&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Thu, 26 Aug 2021 06:40:18 GMT</pubDate>
      <guid>https://communities.sas.com/t5/CoDe-SAS-German/Tabelle-in-Gruppen-aufteilen-unter-Bedingungen/m-p/764115#M2699</guid>
      <dc:creator>andreas_lds</dc:creator>
      <dc:date>2021-08-26T06:40:18Z</dc:date>
    </item>
    <item>
      <title>Re: Tabelle in Gruppen aufteilen unter Bedingungen</title>
      <link>https://communities.sas.com/t5/CoDe-SAS-German/Tabelle-in-Gruppen-aufteilen-unter-Bedingungen/m-p/764184#M2700</link>
      <description>&lt;P&gt;Danke Andreas!&lt;/P&gt;&lt;P&gt;Dein Code macht genau das was ich wollte &lt;span class="lia-unicode-emoji" title=":lächelndes_Gesicht_mit_lächelnden_Augen:"&gt;😊&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 26 Aug 2021 13:24:29 GMT</pubDate>
      <guid>https://communities.sas.com/t5/CoDe-SAS-German/Tabelle-in-Gruppen-aufteilen-unter-Bedingungen/m-p/764184#M2700</guid>
      <dc:creator>Spinner_Bernd</dc:creator>
      <dc:date>2021-08-26T13:24:29Z</dc:date>
    </item>
  </channel>
</rss>

