运行sas代码时没有发生任何事情
还有其他人有这个问题吗?基本上,有时当我编写宏并运行代码时,什么都不会发生。日志只是以黑色写入您试图执行的代码,但这就像SAS被禁用一样,您必须关闭SAS并重新打开,然后才能正常运行。有没有一种方法可以解决这个问题,而不必关闭和打开sas 这是我的代码:运行sas代码时没有发生任何事情,sas,Sas,还有其他人有这个问题吗?基本上,有时当我编写宏并运行代码时,什么都不会发生。日志只是以黑色写入您试图执行的代码,但这就像SAS被禁用一样,您必须关闭SAS并重新打开,然后才能正常运行。有没有一种方法可以解决这个问题,而不必关闭和打开sas 这是我的代码: dm 'clear log';
dm 'clear log';
dm 'clear output';
dm 'odsresults: clear';
libname projet 'C:\Users\MJ-INFO\Desktop\Projet scoring1' ;
/*Extrcation de la base d'etude et creation d'une copie*/
data Examen ;
set projet.base_resiliation_proj ;
run;
/*Contenu de la base*/
proc contents data=Examen;
run;
/*Corespondance entre les formats et les variables */
proc format ;
value $sexe
"1"="homme"
"2"="femme";
run;
/*Applicatation des formats*/
data Examen;
set projet.base_resiliation_proj ;
format sexe $sexe.;
run ;
/*Nous avons 53892 observations et 8 variables dans notre base*/
/*Definition de la variable à expliquer *
%let var_cible=RESIL;
/*Definition des variables explicatives */
%let var_quali=formule sexe;
%let var_quanti=anc_client anc_cont cotisation id nb_cont;
/*Vue sur la variable cible*/
proc freq data=Examen;
table &var_cible;
run;
/*14.42 des contrats sont des fragiles*/
/*Exploration des variables candidates de la base*/
proc freq data=Examen;
table &var_quali;
run;
proc means data=Examen min max mean median nmiss;
var &var_quanti;
run;
/*Traitement des valeurs manquantes/aberrantes*/
data Examen;
set Examen;
if cotisation=-1 then delete;
if cotisation='.' then delete;
if nb_cont=99999 then delete;
run;
/*II.Preparation des donnees*/
/*Etude des liaisons entre variables qualitatives et variable cible */
/*Variables qualitatives : test de Khi-2 & v de Cramer*/
%macro quali(table,var,cible,mod);
/*Representation en terme d'effectif*/
proc gchart data=&table;
vbar3d &var. / sumvar=&cible discrete;
title "Effectifs de la variable &var";
run;
/*Taux de contrat à risque*
proc freq data=&table;
table &var.*&cible / chisq outpct out=pct;
run;
proc gchart data=pct (where=(&cible=&mod));
vbar3d &var. / sumvar=pct_row discrete;
title "Taux de contrats à risque de la variable &var";
run;
quit;
title;
%mend;
%quali(Examen,sexe,&var_cible,1);
Sas显示运行此代码的黑色执行:
/*II.Preparation des donnees*/
/*Etude des liaisons entre variables qualitatives et variable cible */
/*Variables qualitatives : test de Khi-2 & v de Cramer*/
%macro quali(table,var,cible,mod);
/*Representation en terme d'effectif*/
proc gchart data=&table;
vbar3d &var. / sumvar=&cible discrete;
title "Effectifs de la variable &var";
run;
我不明白为什么当我看到日志页时,即使代码没有错误,我也会得到黑色执行
谢谢你的帮助 您的代码:
%macro quali(table,var,cible,mod);
/*Representation en terme d'effectif*/
proc gchart data=&table;
vbar3d &var. / sumvar=&cible discrete;
title "Effectifs de la variable &var";
run;
已开始定义宏,但从未完成。最后没有%mend语句,因此SAS认为您仍在向其发送宏代码以进行编译。如果您添加了一个%mend,它应该可以工作
SA以这种方式感觉无响应的最常见原因是未关闭的宏定义、未关闭的注释块和不匹配的引号。如果你在谷歌搜索SAS magic string,你会发现一些代码示例,当你陷入这种情况时,你可以提交这些代码来尝试恢复。比如:
*';*";*/;%mend;
如果您使用的是EnterpriseGuide,它会在每次提交代码时自动添加一个神奇的字符串。这意味着您的会话不会感到挂起。但如果有未关闭的宏定义,则会使其更难识别,因为它看起来一切正常。但实际上,它根本没有执行。神奇的字符串最终会隐藏问题。我假设SAS studio也添加了一个神奇的字符串,但我还没有检查 SAS Studio可用于以交互方式以及批处理方式运行,因此在这方面它与EG有所不同。Studio确实添加了神奇字符串,但它不包括%MEND、&GRAPHTERM;;*';*;*/;跑退出