Le script crée un jeu de données contenant une série de valeurs numériques, y compris des valeurs manquantes spéciales (._, .a, .b, etc.). Il utilise la macro mp_jsonout pour exporter ces données en JSON. Le fichier résultant est ensuite relu et converti (les valeurs spéciales étant traitées comme du texte dans le JSON) pour vérifier que les données reconstruites correspondent exactement aux données d'origine via PROC COMPARE.
Analyse des données
Type : CREATION_INTERNE
La table 'demo' est générée localement via un Data Step itératif.
1 Bloc de code
DATA STEP Data
Explication : Définition d'un fichier temporaire et création de la table de données 'demo' contenant diverses valeurs numériques et valeurs manquantes spéciales pour le test.
Copié !
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 Bloc de code
MACRO CALL
Explication : Appel de la macro mp_jsonout pour exporter la table 'demo' vers le fichier temporaire 'webref', avec l'option missing=STRING pour gérer les formats spécifiques.
Explication : Étape de débogage affichant le contenu brut du fichier JSON généré dans la log SAS.
Copié !
data _null_;
infile webref;
input;
putlog _infile_;
run;
1
DATA _null_;
2
INFILE webref;
3
INPUT;
4
putlog _infile_;
5
RUN;
4 Bloc de code
DATA STEP Data
Explication : Lecture du fichier JSON via le moteur LIBNAME JSON et reconstruction de la table 'test'. Inclut une logique pour reconvertir les chaînes de caractères (représentant les valeurs manquantes spéciales) en format numérique SAS.
Copié !
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 Bloc de code
MACRO CALL
Explication : Vérification qu'aucune erreur système (SYSCC) ne s'est produite jusqu'à présent.
Copié !
%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 Bloc de code
PROC COMPARE
Explication : Comparaison structurelle et du contenu entre la table originale 'demo' et la table issue du JSON 'test'.
Explication : Assertion finale vérifiant que la PROC COMPARE n'a détecté aucune différence (SYSINFO=0).
Copié !
%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
)
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.