LesezeichenAbonnierenRSS-Feed abonnieren
Katrin1606
Fluorite | Level 6

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.

 

  1. Neue Variable = Monat (Format: numerisch) à extrahiere den Monat aus der numerischen Variable 1
  2. Neue Variable = Monat 1 (Format: numerisch) à extrahiere den Monat aus der alphanumerischen Variable 2
  3. Neue Variable = Monat 2 (Format: alphanumerisch) à extrahiere den Monat aus der numerischen Variable 1
  4. 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!

2 ANTWORTEN 2
Kurt_Bremser
Super User

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.

Kurt_Bremser
Super User

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;

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
  • 7659 Aufrufe
  • 0 Kudos
  • 2 in Unterhaltung