LesezeichenAbonnierenRSS-Feed abonnieren
Katrin1606
Fluorite | Level 6

Hallo,

 

ich möchte die Bezeichnung von bestimmten Begriffen innerhalb einer Spalte ändern. Dabei geht es mir nicht um die Spaltenüberschrift sondern tatsächlich um den Inhalt:

 

z.B.

Straße = STR

Nummer = NR

...

 

Welchen data step kann ich hier vewenden?

 

Viele Grüße

 

 

2 ANTWORTEN 2
BrunoMueller
SAS Super FREQ

Die TRANWRD Funktion kann Texte ersetzen, hier ein Beispiel:

data have;
  infile cards;
  input adresse $80.;
cards;
MusterStraße mit Nummer
Straße mit Nummer
StraßemitNummer
;

data want;
  set have;
  adresse2 = tranwrd(adresse, "Straße", "STR");
  adresse2 = tranwrd(adresse2, "Nummer", "NR");
run;
andreas_lds
Jade | Level 19

Das Ersetzen von Texten ist in der Community immmer wieder ein Thema. Die Funktion tranwrd kann Zeichenketten ersetzen, macht das aber auch, wenn ein Wort Bestandteil eines anderen Worts ist, die Funktion unterscheidet Groß- und Kleinschreibung. Löst man dieses Problem mit upcase (oder lowcase) holt einen das erste Problem wieder ein, was folgendes Beispiel vielleicht verdeutlicht.

data demo;
   length Original A B  $ 40;
   input Original;

   A = tranwrd(Original, 'Straße', 'STR');
   B = tranwrd(upcase(Original), 'STRAßE', 'STR');

   datalines;
Birkenstraße
Beethoven-Straße
Straßenschild
run;

Kannst du vielleicht ein paar Beispiele posten? Dann lässt sich besser abschätzen, ob reguläre Ausdrücke der Weg zu Ziel sind.

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

Register Now

Diskussionsstatistiken
  • 2 Antworten
  • 1414 Aufrufe
  • 3 Kudos
  • 3 in Unterhaltung