Das Skript erstellt einen Datensatz mit einer Reihe von numerischen Werten, einschließlich spezieller fehlender Werte (._, .a, .b usw.). Es verwendet das mp_jsonout-Makro, um diese Daten in JSON zu exportieren. Die resultierende Datei wird dann neu eingelesen und konvertiert (wobei spezielle Werte als Text im JSON behandelt werden), um zu überprüfen, ob die rekonstruierten Daten über PROC COMPARE genau mit den Originaldaten übereinstimmen.
Datenanalyse
Type : INTERNE_ERSTELLUNG
Die Tabelle 'demo' wird lokal über einen iterativen Data Step generiert.
1 Codeblock
DATA STEP Data
Erklärung : Definition einer temporären Datei und Erstellung der Datentabelle 'demo' mit verschiedenen numerischen Werten und speziellen fehlenden Werten für den Test.
Kopiert!
filename webref temp;
data demo;
do x=._,.,.a,.b,.c,.d,.e,-99, 0, 1,2, 3.333333;
output;
end;
run;
1
filename webref temp;
2
3
DATA demo;
4
DO x=._,.,.a,.b,.c,.d,.e,-99, 0, 1,2, 3.333333;
5
OUTPUT;
6
END;
7
RUN;
2 Codeblock
MACRO CALL
Erklärung : Aufruf des mp_jsonout-Makros zum Export der Tabelle 'demo' in die temporäre Datei 'webref' mit der Option missing=STRING zur Handhabung spezifischer Formate.
Erklärung : Debugging-Schritt, der den Rohinhalt der generierten JSON-Datei im SAS-Log anzeigt.
Kopiert!
data _null_;
infile webref;
input;
putlog _infile_;
run;
1
DATA _null_;
2
INFILE webref;
3
INPUT;
4
putlog _infile_;
5
RUN;
4 Codeblock
DATA STEP Data
Erklärung : Lesen der JSON-Datei über die LIBNAME JSON-Engine und Rekonstruktion der Tabelle 'test'. Enthält eine Logik zur Rückkonvertierung von Zeichenfolgen (die spezielle fehlende Werte darstellen) in das SAS-numerische Format.
Kopiert!
libname web JSON fileref=webref;
data work.test(keep=x);
set web.demo(rename=(x=y));
if y ='_' then x=._;
else if anyalpha(y) then x=input(cats(".",y),best.);
else x=input(y,best.);
put (_all_)(=);
run;
1
LIBNAME web JSON fileref=webref;
2
3
DATA work.test(keep=x);
4
SET web.demo(rename=(x=y));
5
IF y ='_'THEN x=._;
6
ELSEIF anyalpha(y) THEN x=INPUT(cats(".",y),best.);
7
ELSE x=INPUT(y,best.);
8
put (_all_)(=);
9
RUN;
5 Codeblock
MACRO CALL
Erklärung : Überprüfung, dass bisher kein Systemfehler (SYSCC) aufgetreten ist.
Kopiert!
%mp_assert(
iftrue=(&syscc=0),
desc=Checking for error condition with special missing export,
outds=work.test_results
)
1
%mp_assert(
2
iftrue=(&syscc=0),
3
desc=Checking for error condition with special missing export,
4
outds=work.test_results
5
)
6 Codeblock
PROC COMPARE
Erklärung : Struktureller und inhaltlicher Vergleich zwischen der Originaltabelle 'demo' und der aus JSON erstellten Tabelle 'test'.
Erklärung : Abschließende Assertion, die überprüft, ob PROC COMPARE keine Unterschiede (SYSINFO=0) erkannt hat.
Kopiert!
%mp_assert(
iftrue=(&sysinfo=0),
desc=Returned json is identical to input table for all special missings,
outds=work.test_results
)
1
%mp_assert(
2
iftrue=(&sysinfo=0),
3
desc=Returned json is identical to INPUTTABLE for all special missings,
4
outds=work.test_results
5
)
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.
SAS und alle anderen Produkt- oder Dienstleistungsnamen von SAS Institute Inc. sind eingetragene Marken oder Marken von SAS Institute Inc. in den USA und anderen Ländern. ® zeigt die Registrierung in den USA an. WeAreCAS ist eine unabhängige Community-Site und nicht mit SAS Institute Inc. verbunden.
Diese Website verwendet technische und analytische Cookies, um Ihre Erfahrung zu verbessern.
Mehr erfahren.