带你读《SAS数据分析开发之道 软件质量的维度》第三章通信交流3.3系统字母数字返回码(一)

简介: 带你读《SAS数据分析开发之道 软件质量的维度》第三章通信交流3.3系统字母数字返回码
+关注继续查看

系统字母数字返回码

SAS 字母数字返回码在这里不是必需的,因为它们仅反映&SYSERR 的数字值。 

此处虽然进行了介绍,但不建议使用这类返回码。

&SYSWARNINGTEXT

自动宏变量 &SYSWARNINGTEXT包括当前 SAS会话生成的或出现在 SAS日志中的最近一个警告信息的文本。警告信息并不代表警告实际发生了。例如,用

%PUT  程序指令打印“WARNING:   FAKE”将导致  &SYSWARNINGTEXT  改变为

FAKE,如以下输出信息所示。

%putBEFORE:&syswarningtextLENGTH:%length(&syswarningtext);BEFORE:            LENGTH:0

%putWARNING:FAKE;WARNING:FAKE

%putAFTER:&syswarningtext     LENGTH:%length(&syswarningtext);

AFTER:FAKE     LENGTH:4

 

以下输出内容显示的是引用了未初始化的宏变量 &NOTAREALMACRO时发出的警告。

%putBEFORE:&syswarningtextLENGTH:%length(&syswarningtext);BEFORE:            LENGTH:0

%put&notarealmacro;

WARNING:ApparentsymbolicreferenceNOTAREALMACROnotresolved.&notarealmacro

%putAFTER:&syswarningtext     LENGTH:%length(&syswarningtext);AFTER:ApparentsymbolicreferenceNOTAREALMACROnotresolved.

LENGTH:55

 

由于 &SYSWARNINGTEXT是只读的,只能在新的警告发出之后重置,因此,它不能手动重置为丢失。尽管该代码仅仅是在 SAS日志中产生一个警告,但该代码的运行依然代表着一个故障,这是因为预期的变量没有显示出来。出于这个原因,在这种情况下,尽管丢失的宏变量在SAS日志中显示为WARNING,但它依然是一个错误,是“人为的错误

由于 &SYSWARNINGTEXT不能被重置,该宏变量在SAS会话结束之前将一直保留在后续程序中。例如,运行上述代码之后,在同一SAS会话中将会继续独立运行以下有效的 DATA步骤,这将会生成非常复杂的输出信息 :

%letsyscc=0;

datafinal;

lengthchar$10;run;

 

NOTE:ThedatasetWORK.FINALhas1observationsand1variables.NOTE:DATAstatementused(Totalprocesstime):

realtime             0.03seconds

cputime               0.03seconds

%putSYSCC:&syscc;SYSCC:0

%putSYSWARNINGTEXT:&syswarningtext;

SYSWARNINGTEXT:ApparentsymbolicreferenceNOTAREALMACROnotresolved.

尽管将该&SYSCC重置为0,且没有遇到任何警告或运行时错误,但该代码还是会错误地显示在上一个不相关程序中保存下来的&SYSWARNINGTEXT值。

为了克服这一缺点并确保&SYSWARNINGTEXT   仅在恰当的时候使用,代码应该仅在&SYSCC=4以及&SYSCC在程序启动之前重置时再引用&SYSWARNINGTEXT。然而,如以下“&SYSWARNINGTEXT”部分所介绍的一样,由于在某些情况下,&SYSCC>4(表示存在错误)将掩盖一个警告代码,因此,没有程序化的方法能证实&SYSWARNINGTEXT       是当前的、相关的。出于这一原因以及前述的一些缺点,我们并不推荐使用 &SYSWARNINGTEXT。

相关文章
|
8天前
|
机器学习/深度学习 数据采集 人工智能
Python可以应用于多个领域,如Web开发、数据分析、机器学习等
Python可以应用于多个领域,如Web开发、数据分析、机器学习等
|
5月前
|
SQL 数据采集 数据可视化
数据开发模块中的SQL和数据分析模块中的SQL查询
数据开发模块中的SQL和数据分析模块中的SQL查询
131 1
|
5月前
|
机器学习/深度学习 人工智能 算法
Python编程入门基础及高级技能、Web开发、数据分析和机器学习与人工智能
Python编程入门基础及高级技能、Web开发、数据分析和机器学习与人工智能
108 0
|
8月前
|
数据挖掘 索引 Python
python开发:空气质量历史数据分析(四)
python开发:空气质量历史数据分析(四)
python开发:空气质量历史数据分析(四)
|
8月前
|
数据挖掘 定位技术 Python
python开发:空气质量历史数据分析(三)
python开发:空气质量历史数据分析(三)
|
8月前
|
存储 数据挖掘 Serverless
python开发:空气质量历史数据分析(二)
python开发:空气质量历史数据分析(二)
|
8月前
|
存储 数据挖掘 API
python开发:空气质量历史数据分析(一)
python开发:空气质量历史数据分析(一)
|
12月前
|
存储 运维 分布式计算
数据分析和数据开发的区别 - 初始
数据分析和数据开发的区别 初始 数据分析(DA:Data Analysis)和数据开发/数据仓库工程师(DE:Data Extraction)究竟有什么区别,工作职责和工作内容上的差异是什么?
269 0
|
12月前
|
SQL 运维 分布式计算
阿里云-DataWorks-数据分析开发到上线运维
本文主要讲解 阿里云-DataWorks- 数据分析开发到上线运维 的思路。 因本文为IT人员以技术视角阐述 日常我们做数据分析的实际开发过程所转化,适合数据分析相关人员阅读。
|
机器学习/深度学习 自然语言处理 前端开发
无需GPT-3!国外小哥徒手开发Text2Code,数据分析代码一键生成
近日,两个外国小哥Kartik Godawat 和 Deepak Rawat 开发了一个 Jupyter 插件Text2Code,可以将自然语言查询转换成相关的 Python 数据分析代码。
197 0
无需GPT-3!国外小哥徒手开发Text2Code,数据分析代码一键生成
推荐文章
更多