
SAS之大话PDV
之所以说是数据源,而非输入缓冲区的原因上一条推送已经说明,这里就不再啰嗦啦。
这里我们且将DATA步流程简单地分为从数据源读入到pdv和从pdv写入数据集。
IF语句 & WHERE语句
这两个语句均是用于条件选择,但二者作用时机却大有不同。简单来说,if语句作用于观测出PDV到生成数据集时;而where语句则作用于观测进入PDV之时。这也奠定了二者效率上的差别。由于where语句作用于观测进入PDV之时,SAS读入的观测已经过选择,读入观测数较少,所以在读入较大数据之时,where语句的优势就尤为明显了。
但又是因为where语句作用于观测进入PDV之时,也带来了一些限制,如:
当提交如上语句之时,SAS将会报错:
ERROR: 变量 x 不在文件“WORK.B”中。
而使用if语句则不会出现此ERROR。
对于这些选项的作用,相信大家也都有所了解;如不了解,那就得好好补补基础咯
言归正传,对于这些语句的作用时机,就不再一一演示,简单来说,rename、keep、drop语句用于PDV到生成数据集的过程中。而对于选项,则需看选项的位置:
对于上述代码,大家可自行敲击运行,就会发现在数据集b生成过程中出现NOTE: 变量 age 未初始化。 原因就在于当选项用于set语句时,作用时机为原始数据至PDV之间;而当选项用于data语句时,则作用于PDV至生成数据集之间。
当SASDATA步中使用SET语句、MERGE语句和UPDATE语句读入变量时(除赋值语句和input语句外),SAS将会自动retain,即由这些语句读入的变量将不会被置缺失。
不多说,上例子:
例1:merge
结果:
运行过程:
从a读入第1条观测,从b读入第1条观测,查看id(即by变量)是否匹配,若不匹配,则读入id较小的观测,若匹配则一起读入PDV。此例为匹配。
到达RUN语句,将PDV写入数据集
从a、b分别读入第2条观测,检查发现不匹配。检查id是否与PDV中相同,若是,则读入匹配的观测(即a中第二条观测),若都不同,则将较小的id观测读入。
达到run语句,OUTPUT;
读入a的第3条观测,b的第2条观测,检查发现不匹配。再检查id发现a中第3条与PDV中id匹配,将其写入。后output。
读入a的第4条观测,b的第2条观测,检查发现匹配,再检查发现与PDV中id不同;此时进入另一个by组,初始化DVP。将匹配的观测写入DVP。
读入a中第5条观测,b中第3条观测,发现id不匹配,再检查发现b中第3条观测id与PDV中id匹配,将其读入,后output。
读入a中第5条观测,b中第4条观测,发现id匹配并与PDV中id不同,初始化pdv,将两条观测整合写入PDV,后output。
由于a中观测已读完(EOF),读入b中第5条观测,发现与PDV中id不同,初始化PDV,读入b中第5条观测,output。注意此时由于没有匹配,且为新的by组,不存在retain的x变量,所以最后一条观测中x为空。
a、b数据集均到达EOF,程序运行结束,保存数据集。
例2:set
结果:
这时候大家可能会发现,第二条观测不是同一个by组吗?为什么第2条观测的x变量不是第一条中x的值呢?为什么没有retain?
然而,其实还是有retain的,只不过数据集中体现不出来,而结果为什么会是那样呢?这就涉及到PDV的又一个原则,当PDV从一个新的数据集中读入观测时,会将PDV置缺失。
若你想看出retain的效果呢,有个办法:
对于UPDATA等其他语句,就不再举例啦,有兴趣者可自行探索。
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
LSTM 模型输入长度选择技巧:提升序列建模效能的关键 在循环神经网络(RNN)家族中,长短期记忆网络(LSTM)凭借其解决长序列 ...
2025-07-11CDA 数据分析师报考条件详解与准备指南 在数据驱动决策的时代浪潮下,CDA 数据分析师认证愈发受到瞩目,成为众多有志投身数 ...
2025-07-11数据透视表中两列相乘合计的实用指南 在数据分析的日常工作中,数据透视表凭借其强大的数据汇总和分析功能,成为了 Excel 用户 ...
2025-07-11尊敬的考生: 您好! 我们诚挚通知您,CDA Level I和 Level II考试大纲将于 2025年7月25日 实施重大更新。 此次更新旨在确保认 ...
2025-07-10BI 大数据分析师:连接数据与业务的价值转化者 在大数据与商业智能(Business Intelligence,简称 BI)深度融合的时代,BI ...
2025-07-10SQL 在预测分析中的应用:从数据查询到趋势预判 在数据驱动决策的时代,预测分析作为挖掘数据潜在价值的核心手段,正被广泛 ...
2025-07-10数据查询结束后:分析师的收尾工作与价值深化 在数据分析的全流程中,“query end”(查询结束)并非工作的终点,而是将数 ...
2025-07-10CDA 数据分析师考试:从报考到取证的全攻略 在数字经济蓬勃发展的今天,数据分析师已成为各行业争抢的核心人才,而 CDA(Certi ...
2025-07-09【CDA干货】单样本趋势性检验:捕捉数据背后的时间轨迹 在数据分析的版图中,单样本趋势性检验如同一位耐心的侦探,专注于从单 ...
2025-07-09year_month数据类型:时间维度的精准切片 在数据的世界里,时间是最不可或缺的维度之一,而year_month数据类型就像一把精准 ...
2025-07-09CDA 备考干货:Python 在数据分析中的核心应用与实战技巧 在 CDA 数据分析师认证考试中,Python 作为数据处理与分析的核心 ...
2025-07-08SPSS 中的 Mann-Kendall 检验:数据趋势与突变分析的有力工具 在数据分析的广袤领域中,准确捕捉数据的趋势变化以及识别 ...
2025-07-08备战 CDA 数据分析师考试:需要多久?如何规划? CDA(Certified Data Analyst)数据分析师认证作为国内权威的数据分析能力认证 ...
2025-07-08LSTM 输出不确定的成因、影响与应对策略 长短期记忆网络(LSTM)作为循环神经网络(RNN)的一种变体,凭借独特的门控机制,在 ...
2025-07-07统计学方法在市场调研数据中的深度应用 市场调研是企业洞察市场动态、了解消费者需求的重要途径,而统计学方法则是市场调研数 ...
2025-07-07CDA数据分析师证书考试全攻略 在数字化浪潮席卷全球的当下,数据已成为企业决策、行业发展的核心驱动力,数据分析师也因此成为 ...
2025-07-07剖析 CDA 数据分析师考试题型:解锁高效备考与答题策略 CDA(Certified Data Analyst)数据分析师考试作为衡量数据专业能力的 ...
2025-07-04SQL Server 字符串截取转日期:解锁数据处理的关键技能 在数据处理与分析工作中,数据格式的规范性是保证后续分析准确性的基础 ...
2025-07-04CDA 数据分析师视角:从数据迷雾中探寻商业真相 在数字化浪潮席卷全球的今天,数据已成为企业决策的核心驱动力,CDA(Certifie ...
2025-07-04CDA 数据分析师:开启数据职业发展新征程 在数据成为核心生产要素的今天,数据分析师的职业价值愈发凸显。CDA(Certified D ...
2025-07-03