- Als neu kennzeichnen
- Lesezeichen
- Abonnieren
- Stummschalten
- RSS-Feed abonnieren
- Kennzeichnen
- Anstößigen Inhalt melden
Hallo zusammen,
ich benötige bitte Eure Hilfe:
Ausgagsbasis (Spalten):
Variable 1 heißt „Datum1“ à Numerisch, Format: yymmdd10.
Variable 2 heißt „Datum2“ à Alphanumerisch, Format: $10.
Ziel: es sollen folgende neue Spalten mit den nachfolgend genannten Formaten erstellt werden. Es soll jeweils der Monatsname wie beschrieben eingefügt werden.
- Neue Variable = Monat (Format: numerisch) à extrahiere den Monat aus der numerischen Variable 1
- Neue Variable = Monat 1 (Format: numerisch) à extrahiere den Monat aus der alphanumerischen Variable 2
- Neue Variable = Monat 2 (Format: alphanumerisch) à extrahiere den Monat aus der numerischen Variable 1
- Neue Variable = Monat 3 (Format: alphanumerisch) à extrahiere den Monat aus der alphanumerischen Variable 2
Ich habe jetz wirklich lange probiert, aber irgendwie bekomme ich das mit dem umformatieren von alphanum. In numerisch und umgekehrt nicht hin.
Vielen Dank!
- Als neu kennzeichnen
- Lesezeichen
- Abonnieren
- Stummschalten
- RSS-Feed abonnieren
- Kennzeichnen
- Anstößigen Inhalt melden
Verwende substr(), um Teile eines Strings aus dem alphanumerischen Datum zu erhalten.
Verwende input() mit passenden Informat, um Strings in Zahlen umzuwandeln.
Verwende month(), um den Monat aus einem SAS-Datum zu erhalten.
Verwende put() mit einem passenden Format, um eine Zahl in einen String zu verwandeln.
Alle Data Step Funktionen sind hier dokumentiert.
- Als neu kennzeichnen
- Lesezeichen
- Abonnieren
- Stummschalten
- RSS-Feed abonnieren
- Kennzeichnen
- Anstößigen Inhalt melden
Das Ganze in Code sieht dann so aus:
data have;
input numdate :yymmdd10. @1 chardate :$10.;
format numdate yymmdd10.;
datalines;
2019-06-12
;
data want;
set have;
format
num_month_from_numdate
num_month_from_chardate z2.
char_month_from_numdate
char_month_from_chardate $2.
;
num_month_from_numdate = month(numdate); /* simple */
char_month_from_chardate = substr(chardate,6,2); /* also simple */
num_month_from_chardate = input(substr(chardate,6,2),2.); /* slightly complicated */
char_month_from_numdate = put(month(numdate),z2.); /* also slightly complicated */
run;