PDV的一些个人理解

    xiaoxiao2021-08-18  104

    最近刚刚考完SAS BASE,对这个考试的一大感受就是,只要你理解了PDV,基本上就不成问题。接下来谈谈我对PDV的理解吧,也算是学习SAS的过程中的一个笔记。

    SAS的运行有两个阶段需要了解,编译阶段(compilation phase)和执行阶段(execution phase)。

    编译阶段SAS主要的任务有:

    1.检查语法错误:

    (1)漏掉或错拼的关键词

    (2)无效的变量名

    (3)遗漏或错误的符号

    (4)无效的选择项

    2.建立PDV:

    (1)用建立SAS系统的数据集,一次只 处理一个观测

    (2)两个自动变量,_N_用于记录DATA步的执行次数,_ERROR_指示出错的信息,0表示无错误,1表示有错误

    3.建立数据集的描述部分:

    (1)数据集名

    (2)观测和变量个数

    (3)变量名及其属性

    执行阶段的主要任务有:若数据步编译成功,就开始执行阶段,在这个阶段对源数据文件的每一条记录执行一次数据步,除非在程序中指明其他处理方式。在这个阶段建立数据集的数据部分。

    OK,简单了解以上过程后,我们开始对PDV进行稍微细致点的讲解,废话不多,上图:

    data temp; input Product Quantity Cost ; cards; 1 2 3 4 5 6 7 8 9 ; run;

    (1)扫描所有变量,新建一个输入缓冲,开辟PDV,新建描述性信息。

    (2)将PDV中的变量设置为缺失值。

    (3)碰到input语句,PDV中读入一条记录。

    (4)碰到run语句,数据集写入一条记录

    (5)判断是否剩余观测,如是,则继续input观测,PDV中的值在此时置为缺失值,重复2-4过程知道源数据无剩余观测。

    retain讲解、where/if讲解、output讲解待更新

    转载请注明原文地址: https://ju.6miu.com/read-676589.html

    最新回复(0)