Ich habe derzeit einen Datensatz mit Datumsangaben im Format "FY15 FEB". Bei dem Versuch, diese Variable zu formatieren, für die Verwendung mit SAS Zeiten und Daten, habe ich folgendes getan:So formatieren Sie den Eingang für das MONYY-Format von SAS
data temp;
set pre_temp;
yr = substr(fiscal,3,2);
month = substr(fiscal,6,length(fiscal));
mmmyy = month||yr;
input mmmyy MONYY5.;
datalines;
run;
Also, ich habe die Saiten das Jahr und die entsprechenden Monat darstellen. Die Ausführung dieses Codes gibt mir jedoch den Fehler "Die informat $ MONYY wurde nicht gefunden oder konnte nicht geladen werden." Einige Hintergrundinformationen zu diesem Fehler zeigen mir, dass es etwas damit zu tun hat, dem Informat einen Wert mit dem falschen Typ zu übergeben. Was muss ich ändern, um die richtige Ausgabe zu erhalten?
* Bearbeiten: Ich sehe auf der SAS-Support-Seite für Formate, die "MONYYw. Erwartet einen SAS-Datumswert als Eingabe;" Wie kann ich von Strings zu einem anderen Datumsformat vor diesem wechseln?
Danke! Ich bin ziemlich neu in SAS, also denke ich, dass die Datalines-Anweisung da drin war, weil ich missverstanden habe, wie die Eingabeanweisung funktionieren soll. Mein tatsächlicher Code enthält auch eine Set-Anweisung, die ich einfach aus der Frage weggelassen habe. Wird es wieder hinzufügen, um Verwirrung zu vermeiden. –
'lengthn()' und 'substrn()' sollten immer anstelle von 'length()' und 'substr()' verwendet werden. Sie behandeln Kantenfälle besser, und im Falle von 'lengthn()' gibt sie '0' anstelle von' 1' für leere Zeichenfolgen zurück, was mit jeder anderen Sprache übereinstimmt. –
Als Follow-up, verstehe ich richtig, dass das Problem war, dass ich die Argumente der führenden/nachgestellten Leerzeichen, die das Problem verursacht hatten, nicht entfernt hatte, oder war es die Funktion input()? –