《SAS编程与数据挖掘商业案例》学习笔记之四
来源:互联网 发布:php能做幻灯片吗 编辑:程序博客网 时间:2024/05/01 14:34
5.双set语句的应用(2个指针,一个pdv)
libname chapt3 'f:\data_model\book_data\chapt3';
data percent;
run;
解读:编译后,内存中会出现双指针;同时生成一个pdv;
首先在内存中开辟一个pdv,读取数据集summary的第一个观测,读取变量cargosum的值并保留;
再读取第二个数据集empcount,并计算pctemps=numemps / cargosum;输出数据并返回到data;
此时if语句不再执行,读取数据集empcount的第二条观测,并计算pctemps=numemps / cargosum;如此循环直到读完empcount。
expenses含有flightid fltdate
incomes含有flightid fltdate
两个表关联一起的实现可以用proc sql的形式很容易的实现,但是当数据量大时,利用set/set语句的效率远远高于sql,尤其是对查询表简历索引之后。
proc datasets lib=chapt2;
modify income;
index create dteflt=(flightid fltdate)/nomiss unique;
quit;
data profit errors;
run;
语句 key = dteflt是利用索引键来匹配两个表数据,自动生成的变量_iorc_ 为0,表示匹配成功,_error_为0表示无错误信息
总结如下:
对于两个表有相同的表结构且被查询的表已经建立了基于该相同变量的索引的情况下,set/set语句是最高效的方式;
主表的指针一般是从第一天一直扫描到最后一条,不走回头路,但是对于被查询表,可以根据索引跳跃数据指针;
对应的主表和建立索引的被查询表一般不再排序;
- 《SAS编程与数据挖掘商业案例》学习笔记之四
- 《SAS编程与数据挖掘商业案例》学习笔记之一
- SAS学习笔记之《SAS编程与数据挖掘商业案例》(5)SAS宏语言、SQL过程
- SAS学习笔记之《SAS编程与数据挖掘商业案例》(2)数据获取与数据集操作
- 《SAS编程与数据挖掘商业案例》学习笔记之二
- 《SAS编程与数据挖掘商业案例》学习笔记之三
- 《SAS编程与数据挖掘商业案例》学习笔记之五
- 《SAS编程与数据挖掘商业案例》学习笔记之六
- 《SAS编程与数据挖掘商业案例》学习笔记之八
- 《SAS编程与数据挖掘商业案例》学习笔记之七
- 《SAS编程与数据挖掘商业案例》学习笔记之九
- 《SAS编程与数据挖掘商业案例》学习笔记之十
- 《SAS编程与数据挖掘商业案例》学习笔记之十一
- 《SAS编程与数据挖掘商业案例》学习笔记之十二
- 《SAS编程与数据挖掘商业案例》学习笔记之十三
- 《SAS编程与数据挖掘商业案例》学习笔记之十四
- 《SAS编程与数据挖掘商业案例》学习笔记之十五
- 《SAS编程与数据挖掘商业案例》学习笔记之十六
- 《SAS编程与数据挖掘商业案例》学习笔记之三
- Reverse Integer
- C#调用C++ 平台调用P/Invoke 结构体--结构体嵌套【八】
- TCP三次握手/四次挥手
- [转载]cookie 和session 的区别详解 - 施杨
- 《SAS编程与数据挖掘商业案例》学习笔记之四
- vector的排序和去重
- c++单线程内存池
- dede采集过滤规则
- Asp.Net中TextBox获得焦点时,其文本全被选中。
- 面试常见问题
- 《SAS编程与数据挖掘商业案例》学习笔记之五
- 位、字节、寻址空间扫盲
- java颠倒字符串