Gibt es ein Makro oder Möglichkeit vorgegebene Spalten inhaltlich zu scannen und den Text jeweils in Groß-/Kleinbuchstaben der Worte zu konvertieren ?
SAS IST EINE TOLLE PROGRAMMIERSPRACHE
-> Sas Ist Eine Tolle Programmiersprache
nach Substantiven noch zu unterscheiden, wäre dabei aber eher Zauberei ;o)
Hi @Sven4IBM
Please post you messages in English.
/* At word level */
data word;
var1 = 'SAS IST EINE TOLLE PROGRAMMIERSPRACHE';
var1_lowcase = lowcase(var1); /* sas ist eine tolle programmiersprache */
var1_propcase = propcase(var1); /* Sas Ist Eine Tolle Programmiersprache */
var1_upcase = upcase(var1); /* SAS IST EINE TOLLE PROGRAMMIERSPRACHE */
run;
/* At sentence level */
data sentence (drop=_:);
var1 = "SAS IST EINE TOLLE PROGRAMMIERSPRACHE";
_First_letter = tranwrd(substr(var1,1,1),substr(var1,1,1),upcase(substr(var1,1,1)));
_Other = tranwrd(substr(var1,2),substr(var1,2),lowcase(substr(var1,2)));
var2 = cats(_First_letter,_Other); /* Sas ist eine tolle programmiersprache */
run;
So in your case, the PROPCASE() function should be the right one.
NB: at sentence level, you could also use a pearl regular expression:
data word;
var1 = 'SAS IST EINE TOLLE PROGRAMMIERSPRACHE';
var2 = prxchange('s/(.)(.*)/\U$1\L$2/',1,var1);
run;
It looks for the pattern (.)(.*), meaning:
- Group1 = a character
- Group2 = zero, one ore more characters
It return /\U$1\L$2, meaning:
- Group1 in Uppercase (\U)
- Group2 in Lowercase (\L)
Best,
Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.