在SAS中,我们使用DATA步来读入数据,DATA步在读入数据时实际上有两个阶段:
编译(compilation)
执行(execution)

过程如下:

  1. 在编译阶段中,逐个扫描语句,如果发现语法错误,SAS报错并终止运行;如果编译阶段中没有发现任何语法错误,进入执行阶段。
  2. 在执行过程中,DATA部读入第一条数据,在SAS中创建第一条观测;读入第二条数据,在SAS中创建第二条观测;读入第三条数据,在SAS中创建第三条观测……直至读入最后一条数据并在SAS中创建最后一条观测。我们可以把这个过程当做隐式循环(和DO,DO WHILE,DO UNTIL语句区分,它们是显示循环)。

可以用过下面的程序来看PDV的过程


data tes2t;put "第" _n_ "次运行之前:"_all_;set sashelp.class;htm=height*2.54/100;  /*身高转换为米*/wtkg=weight*0.454;    /*体重转换为公斤*/put "第" _n_ "次运行之后:" _all_;run;

运行之后可以查看日志:

日志就是PDV的过程所示:

  1. SAS在编译阶段会创建PDV(program data vector),PDV其实就是内存中的一块区域,日志中的第一行就是编译阶段编译的。在PDV中加入变量(读取数据集中的变量和新创建的变量)并且赋值缺失。
    注意:在PDV中有两个自动变量,N_和_ERROR。N=1表示正在创建第一条观测,N=2表示正在创建第二条观测,依次类推。
    _ERROR_只有0和1两个取值,等于0表示在创建当前观测时未发现错误,等于1表示在创建当前观测时发现错误。
    除了这两个自动变量外,若数据进行排序分类后还可自动产生first.和last.变量,当然PDV中还有输入数据集的变量和新创建的变量。
    PDV中的变量按照先来后的原则决定了在PDV中变量的先后顺序位置
  2. SAS进行执行阶段,每次循环开始时不是输入数据集读入的变量置为缺失,将输入数据集的观测直至循环完毕,继续执行数据步中的其他语句,当然数据步中的其他语句也可能会对PDV的数据进行修改,数据步的最后会将PDV里面的内容写入新生成的数据集中。

retain语句就是利用PDV的机制实现赋值功能的:
不使用RETAIN,INPUT在每次循环执行时会把PDV中的变量值清空,即置为(.)。
使用RETIAN,INPUT在每次循环执行时保留上一次PDV中的变量值。

SAS中的PDV机制相关推荐

  1. SAS中关于PDV的总结

    什么是PDV 个人认为可以把PDV想象成一排用于存放变量值的盒子.每个盒子代表一个变量. 提交一个DATA步后,SAS会对这个DATA步进行编译,然后执行. 首先,PDV是在DATA步的编译阶段生成的 ...

  2. SAS笔记(1) PDV与数据读入

    其实我是不喜欢SAS的.当然,我不喜欢她,并不代表她不好,实际上在某些应用场景下SAS是款很优秀的软件.我的数据分析之路始于R,品尝过R的灵活与简洁(不论是软件安装还是语法)后,再来学习SAS,的确提 ...

  3. 「前端面试题系列7」Javascript 中的事件机制(从原生到框架)

    前言 这是前端面试题系列的第 7 篇,你可能错过了前面的篇章,可以在这里找到: 理解函数的柯里化 ES6 中箭头函数的用法 this 的原理以及用法 伪类与伪元素的区别及实战 如何实现一个圣杯布局? ...

  4. jQuery中的事件机制深入浅出

    昨天呢,我们大家一起分享了jQuery中的样式选择器,那么今天我们就来看一下jQuery中的事件机制,其实,jQuery中的事件机制与JavaScript中的事件机制区别是不大的,只是,JavaScr ...

  5. 深度学习中的注意力机制(三)

    作者 | 蘑菇先生 来源 | NewBeeNLP原创出品 深度学习Attenion小综述系列: 深度学习中的注意力机制(一) 深度学习中的注意力机制(二) 目前深度学习中热点之一就是注意力机制(Att ...

  6. 深度学习中的注意力机制(二)

    作者 | 蘑菇先生 来源 | NewBeeNLP 目前深度学习中热点之一就是注意力机制(Attention Mechanisms).Attention源于人类视觉系统,当人类观察外界事物的时候,一般不 ...

  7. 深度学习中的注意力机制(一)

    作者 | 蘑菇先生 来源 | NewBeeNLP 头图 | CSDN下载自视觉中国 目前深度学习中热点之一就是注意力机制(Attention Mechanisms).Attention源于人类视觉系统 ...

  8. 综述|计算机视觉中的注意力机制

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 作者丨HUST小菜鸡@知乎 来源丨https://zhuanlan ...

  9. 一文读懂Spring中的AOP机制

    一.前言 这一篇我们来说一下 Spring 中的 AOP 机制,为啥说完注解的原理然后又要说 AOP 机制呢? 1.标记日志打印的自定义注解 @Target({ElementType.METHOD}) ...

最新文章

  1. for循环 消耗时间计算
  2. Tool之curl:curl的简介、安装、使用方法之详细攻略
  3. php后台无法登入,PHP magento后台无法登录问题解决方法
  4. 将微服务注册到Eureka Server上
  5. Github(1)-概览,初始化仓库
  6. oracle display set,Check if the DISPLAY variable is set
  7. CCF NOI1145 数字金字塔【DP】
  8. 02-C#(基础)基本的定义和说明
  9. win10更新后,gambit无法使用,出现exceed安装弹窗解决方法
  10. ANSYS CFD网格划分笔记2
  11. Windows重新生成UEFI引导,解决Windows蓝屏\BCD 0xc0000098
  12. 使用RamDiskNT虚拟软盘后vmware无法识别
  13. 哈夫曼树实现:统计文本信息,构造哈夫曼树,并对其进行编码与解码
  14. shel脚本基础系列(二)语法+运算+判断
  15. RabbitMQ之延迟队列
  16. unity学习之路——什么是unity(附学习路线)
  17. 通俗易懂spring之singleton和prototype
  18. 2019日历全年一张_2020年剑桥英语全年考试日历发布,参与活动还能赢取实体台历!...
  19. Symbian OS应用编程图形篇之架构
  20. Android 轻松连接 Usb Device —— UsbConnector

热门文章

  1. 一文教会你Gitlab搭建
  2. python算法二:迭代法
  3. 修改Linux中默认的python版本
  4. 为什么牛逼?——Stonie is a KungFu monk游戏精品功能介绍与详细规范,以及其中的挑战...
  5. C# showDialog()
  6. 进超市买东西不用花钱?老板在玩什么套路,一分钟让你全部明白!
  7. session共享(redis实现)
  8. 中国红牛东北第一条新生产线建成;亚德诺半导体加大中国市场投资;英力士苯领ABS新厂在宁波奠基 | 美通企业周刊...
  9. 洗地机家用哪款质量好?比较好用的洗地机推荐
  10. 结构力学程序算法理论基础(六)————用力法来求固端弯矩