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
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;
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.
Nearly 200 sessions are now available on demand with the SAS Innovate Digital Pass.
Explore Now →