全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
13788 10
2012-11-30
上午看了几个贴子,我觉得对PDV有一些更深的理解
就是说,DATA  run实际上是一个循环。你把data看成是do把run看成是end.
一开始时,扫描程序,包括一切的变量等,分配一个空间,开辟PDV也就是一个向量,这个向量是多维的,维数就是程序里面的(需要保留的)变量数;
然后开始执行你的程序,执行完以后呢,所有的变量都会保留在PDV中,当遇到run后,那么第一次循环结束,这个PDV里包含的所有变量和值,都赋到数据集中。
开始第二次循环。
那么两个SET其实一样,我觉得可以理解为各读一条数据,遇到run后,PDV还是那个流程,但是这两个数据集的指针会下移到下条数据,也就是都到第二条。自带point+1多个SET语句在一起,指针一起移,如果没有特殊指标的话。
如果任何一个数据集读完了,data也就结束了。



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2012-11-30 12:14:56
PDV里的变量 不仅只是保留的变量。一般是所有变量+2,另外两个是_error_,_n_,如果有by 语句,还有first.var last.var。keep,drop等语句作用在PDV后,不影响其是否保留在PDV里,where作用在PDV前。

两个set语句,就有两个数据指针。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-12-2 00:48:18
webgu 发表于 2012-11-30 12:14
PDV里的变量 不仅只是保留的变量。一般是所有变量+2,另外两个是_error_,_n_,如果有by 语句,还有first.var ...
Also

set tmp1 tmp2;   and

set tmp1; set tmp2  are very different.
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-12-2 01:03:40
bobguy 发表于 2012-12-2 00:48
Also

set tmp1 tmp2;   and
是的。我是这么理解的:
set tmp1 tmp2 ;一个数据指针,一个PDV,所以数据集是一个一个读的,所以数据是纵向拼接。
set tmp1;set tmp2; 两个数指针,一个PDV, 所以观测是两个数据集一起读出来的,所以数据是横向拼接。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-12-2 17:08:04
input buffer-------PDV-------new dataset
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2014-1-15 09:44:16
挺 @@@@@@@@@@2
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群