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,
Dive into keynotes, announcements and breakthroughs on demand.
Explore Now →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.
Ready to level-up your skills? Choose your own adventure.