(3) data步底层运行逻辑—partⅡ

    首先data步的运行是分为两个阶段,编译和执行阶段,编译阶段主要是来开辟内部空间,构成PDV

编译阶段主要的两个操作:


    1、PDV的第一步会把输入数据集相关变量的表头copy到PDV中

    2、后续语句有新的变量也会开辟在PDV中,做完就编译结束,就会把PDV里面的表头输出到输出数据集中

然后就是进行到了执行阶段:

    1、初始化PDV,所有值全部清空,然后读取输入数据集第一条观测放到PDV中,然后根据语句进行相关的操作与计算,遇到output就输出到输出数据集中;然后由于run语句之前的,包含隐藏的return语句,就会重新循环

    2、这个时候重新初始化,但是这里需要注意下规则(由input语句和赋值语句创建的变量会被初始化,由set语句读取的变量不会被重新初始化),就相当于这个时候有一些变量会被初始化为缺失值,另一些没有被初始化的,就会被下一行观测给覆盖掉,然后进行相关的操作,直至输入数据集的所有观测全部结束。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容