<?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 "Betreff: Ersetzen/Ändern" in CoDe SAS German</title>
    <link>https://communities.sas.com/t5/CoDe-SAS-German/Ersetzen-%C3%84ndern/m-p/440461#M2354</link>
    <description>&lt;P&gt;Hallo&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/66189"&gt;@Fay123&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;je nachdem, wieviele Ersetzungen zu machen sind, könnte man das z.B. über eine Zuordnungstabelle lösen, die man an die Daten joined oder bei weniger Ersetzungen einfach mit der TRANWRD-Funktion, die ganze Wörter in einem String ersetzen kann.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Viele Grüße&lt;/P&gt;
&lt;P&gt;Michael&lt;/P&gt;</description>
    <pubDate>Tue, 27 Feb 2018 12:53:38 GMT</pubDate>
    <dc:creator>mfab</dc:creator>
    <dc:date>2018-02-27T12:53:38Z</dc:date>
    <item>
      <title>Ersetzen/Ändern</title>
      <link>https://communities.sas.com/t5/CoDe-SAS-German/Ersetzen-%C3%84ndern/m-p/440458#M2353</link>
      <description>&lt;P&gt;Gibt es in SAS eine ähnliche Funktion wie in Excel: Werte ersetzen bzw. ergänzen?&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Eine Beispiel:&lt;/P&gt;
&lt;P&gt;ich habe Werte wie&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;BIV1&lt;/P&gt;
&lt;P&gt;BiV2&lt;/P&gt;
&lt;P&gt;BIV3&lt;/P&gt;
&lt;P&gt;BIV&lt;/P&gt;
&lt;P&gt;BIV1_ABC&lt;/P&gt;
&lt;P&gt;BIV2_ABC&lt;/P&gt;
&lt;P&gt;BIV3_ABC..........&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Diese Werte sollen umbenannt werden in&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;BIV1Y&lt;/P&gt;
&lt;P&gt;BIV2Y&lt;/P&gt;
&lt;P&gt;BIV3Y&lt;/P&gt;
&lt;P&gt;BIVY&lt;/P&gt;
&lt;P&gt;BIV1Y_ABC&lt;/P&gt;
&lt;P&gt;BIV2Y_ABC&lt;/P&gt;
&lt;P&gt;BIV3Y_ABC&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Danke vorab!&lt;/P&gt;</description>
      <pubDate>Tue, 27 Feb 2018 11:22:40 GMT</pubDate>
      <guid>https://communities.sas.com/t5/CoDe-SAS-German/Ersetzen-%C3%84ndern/m-p/440458#M2353</guid>
      <dc:creator>Fay123</dc:creator>
      <dc:date>2018-02-27T11:22:40Z</dc:date>
    </item>
    <item>
      <title>Betreff: Ersetzen/Ändern</title>
      <link>https://communities.sas.com/t5/CoDe-SAS-German/Ersetzen-%C3%84ndern/m-p/440461#M2354</link>
      <description>&lt;P&gt;Hallo&amp;nbsp;&lt;a href="https://communities.sas.com/t5/user/viewprofilepage/user-id/66189"&gt;@Fay123&lt;/a&gt;,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;je nachdem, wieviele Ersetzungen zu machen sind, könnte man das z.B. über eine Zuordnungstabelle lösen, die man an die Daten joined oder bei weniger Ersetzungen einfach mit der TRANWRD-Funktion, die ganze Wörter in einem String ersetzen kann.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Viele Grüße&lt;/P&gt;
&lt;P&gt;Michael&lt;/P&gt;</description>
      <pubDate>Tue, 27 Feb 2018 12:53:38 GMT</pubDate>
      <guid>https://communities.sas.com/t5/CoDe-SAS-German/Ersetzen-%C3%84ndern/m-p/440461#M2354</guid>
      <dc:creator>mfab</dc:creator>
      <dc:date>2018-02-27T12:53:38Z</dc:date>
    </item>
    <item>
      <title>Betreff: Ersetzen/Ändern</title>
      <link>https://communities.sas.com/t5/CoDe-SAS-German/Ersetzen-%C3%84ndern/m-p/440462#M2355</link>
      <description>&lt;P&gt;Ich sehe neben einem Join mit einer externen Tabelle noch mindestens&amp;nbsp;zwei weitere effektive Wege, wie die 'Umbenennung' von statten gehen kann:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Erzeugen eines Formates, das das mapping von altem zu neuem Namen übernimmt&lt;/LI&gt;
&lt;LI&gt;Verwenden von Regular Expressions
&lt;UL&gt;
&lt;LI&gt;Diese Variante ist dann interessant, wenn es Regeln für die Umbenennung gibt&lt;/LI&gt;
&lt;LI&gt;Dann muss man nicht jeden alten und neuen Wert selbst in irgendeiner Form benennen&lt;/LI&gt;
&lt;/UL&gt;
&lt;/LI&gt;
&lt;/OL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;U&gt;&lt;STRONG&gt;Code für Variante 1:&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;PROC FORMAT LIB=WORK;
   VALUE $fmtNewNames
      "BIV1"      = "BIV1Y"
      "BIV2"      = "BIV2Y"
      "BIV3"      = "BIV3Y"
      "BIV"       = "BIVY"
      "BIV1_ABC"  = "BIV1Y_ABC"
      "BIV2_ABC"  = "BIV2Y_ABC"
      "BIV3_ABC"  = "BIV3Y_ABC"
   ;
RUN;

DATA _NULL_;
   LENGTH
      Vorher
      Nachher     $20
   ;

   Vorher   = "BIV";
   Nachher  = PUT (Vorher, $fmtNewNames.);
   PUT Vorher= Nachher=;

   Vorher   = "BIV1";
   Nachher  = PUT (Vorher, $fmtNewNames.);
   PUT Vorher= Nachher=;

   Vorher   = "BIV2_ABC";
   Nachher  = PUT (Vorher, $fmtNewNames.);
   PUT Vorher= Nachher=;

   Vorher   = "UNBEKANNT";
   Nachher  = PUT (Vorher, $fmtNewNames.);
   PUT Vorher= Nachher=;
RUN;

/* Ausgabe im Log: */
Vorher=BIV Nachher=BIVY
Vorher=BIV1 Nachher=BIV1Y
Vorher=BIV2_ABC Nachher=BIV2Y_ABC
Vorher=UNBEKANNT Nachher=UNBEKANNT&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;U&gt;&lt;STRONG&gt;Code für Variante 2:&lt;/STRONG&gt;&lt;/U&gt;&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;/* Angenommen die Regel lautet:
   -  Es kommen Werte, 
      -  die mit BIV beginnen 
      -  und danach 0 bis 1 Ziffer haben
      -  und danach
         -  enden
         -  oder ein Unterstrich und weitere Zeichen folgen
   -  Ergänze diese Werte um den Buchstaben Y
      -  bei 3-stelligen Werten am Ende
      -  sonst nach der ersten Ziffer
*/
DATA _NULL_;
   LENGTH
      oPattern       8
      sPattern       $100
      Vorher
      Nachher        $20
   ;

   /* Definieren des Such- und Ersetzungsmusters */
   sPattern    = 's/(BIV\d?)(_?)(.*)/$1Y$2$3/';

   /* Suchmuster validieren */
   oPattern    = PRXParse  (sPattern);

   Vorher   = "BIV";
   Nachher    = PRXChange (oPattern, 1, Vorher);
   PUT Vorher= Nachher=;

   Vorher   = "BIV_ABC";
   Nachher    = PRXChange (oPattern, 1, Vorher);
   PUT Vorher= Nachher=;

   Vorher   = "BIV1";
   Nachher    = PRXChange (oPattern, 1, Vorher);
   PUT Vorher= Nachher=;

   Vorher   = "BIV2ABC";
   Nachher    = PRXChange (oPattern, 1, Vorher);
   PUT Vorher= Nachher=;

   Vorher   = "BIV3_ABC";
   Nachher    = PRXChange (oPattern, 1, Vorher);
   PUT Vorher= Nachher=;

   Vorher   = "UNBEKANNT";
   Nachher    = PRXChange (oPattern, 1, Vorher);
   PUT Vorher= Nachher=;

RUN;

/* Ausgabe im Log: */
Vorher=BIV Nachher=BIVY
Vorher=BIV_ABC Nachher=BIVY_ABC
Vorher=BIV1 Nachher=BIV1Y
Vorher=BIV2ABC Nachher=BIV2YABC
Vorher=BIV3_ABC Nachher=BIV3Y_ABC
Vorher=UNBEKANNT Nachher=UNBEKANNT&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Viele Grüße&lt;/P&gt;
&lt;P&gt;Andreas&lt;/P&gt;</description>
      <pubDate>Tue, 27 Feb 2018 12:57:21 GMT</pubDate>
      <guid>https://communities.sas.com/t5/CoDe-SAS-German/Ersetzen-%C3%84ndern/m-p/440462#M2355</guid>
      <dc:creator>AndreasBachert</dc:creator>
      <dc:date>2018-02-27T12:57:21Z</dc:date>
    </item>
    <item>
      <title>Betreff: Ersetzen/Ändern</title>
      <link>https://communities.sas.com/t5/CoDe-SAS-German/Ersetzen-%C3%84ndern/m-p/440463#M2356</link>
      <description>&lt;P&gt;hallo Fay,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;mit index() kann man die Position eines Zeichens im String bestimmen.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;viele Grüße. Heide&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;PRE&gt;data test;
length wert $20;
        wert = 'BIV1'; output;
        wert = 'BiV2'; output;
        wert = 'BIV3'; output;
        wert = 'BIV'; output;
        wert = 'BIV1_ABC'; output;
        wert = 'BIV2_ABC'; output;
        wert = 'BIV3_ABC'; output;
run;
 
data daten (drop=pos);
        set test;
        pos = index(wert,"_");
        if pos then wert = cats(substr(wert,1,pos-1),"Y",substr(wert,pos));
                        else wert = cats(wert,"Y");
run;
&lt;/PRE&gt;</description>
      <pubDate>Tue, 27 Feb 2018 11:38:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/CoDe-SAS-German/Ersetzen-%C3%84ndern/m-p/440463#M2356</guid>
      <dc:creator>HeideTribius</dc:creator>
      <dc:date>2018-02-27T11:38:01Z</dc:date>
    </item>
    <item>
      <title>Betreff: Ersetzen/Ändern</title>
      <link>https://communities.sas.com/t5/CoDe-SAS-German/Ersetzen-%C3%84ndern/m-p/440498#M2357</link>
      <description>&lt;P&gt;Hallo Fay123,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;die Funktion PRXChange ist dafür geeignet:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;data test;
  length wert $20;
  wert = 'BIV1'; output;
  wert = 'BiV2'; output;
  wert = 'BIV3'; output;
  wert = 'BIV'; output;
  wert = 'BIV1_ABC'; output;
  wert = 'BIV2_ABC'; output;
  wert = 'BIV3_ABC'; output;
run;
Data change;
  set test;
  wert_neu = PRXChange("s/(BIV\d*)(.*)/\1Y\2/i",1,Wert);
run;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P&gt;Viele Grüße&lt;/P&gt;
&lt;P&gt;Jan&lt;/P&gt;</description>
      <pubDate>Tue, 27 Feb 2018 13:33:26 GMT</pubDate>
      <guid>https://communities.sas.com/t5/CoDe-SAS-German/Ersetzen-%C3%84ndern/m-p/440498#M2357</guid>
      <dc:creator>jh_ti_bw</dc:creator>
      <dc:date>2018-02-27T13:33:26Z</dc:date>
    </item>
    <item>
      <title>Betreff: Ersetzen/Ändern</title>
      <link>https://communities.sas.com/t5/CoDe-SAS-German/Ersetzen-%C3%84ndern/m-p/440529#M2358</link>
      <description>&lt;P&gt;Vielen Dank an alle!&lt;/P&gt;</description>
      <pubDate>Tue, 27 Feb 2018 15:33:14 GMT</pubDate>
      <guid>https://communities.sas.com/t5/CoDe-SAS-German/Ersetzen-%C3%84ndern/m-p/440529#M2358</guid>
      <dc:creator>Fay123</dc:creator>
      <dc:date>2018-02-27T15:33:14Z</dc:date>
    </item>
  </channel>
</rss>

