日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

《SAS编程与数据挖掘商业案例》学习笔记之四

發布時間:2023/12/4 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 《SAS编程与数据挖掘商业案例》学习笔记之四 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

5.set語句的應用(2個指針,一個pdv)

libname chapt3 'f:\data_model\book_data\chapt3';

data percent;

????if _n_ = 1 then

????????set chapt3.summary(keep = cargosum);

????set chapt3.empcount;

????pctemps = numemps / cargosum;

run;

解讀:編譯后,內存中會出現雙指針;同時生成一個pdv

首先在內存中開辟一個pdv,讀取數據集summary的第一個觀測,讀取變量cargosum的值并保留;

再讀取第二個數據集empcount,并計算pctemps=numemps / cargosum;輸出數據并返回到data;

此時if語句不再執行,讀取數據集empcount的第二條觀測,并計算pctemps=numemps / cargosum;如此循環直到讀完empcount

?

?在商業實戰中最長見有兩種情況:一種是按照索引匹配和更新數據;另一種是按照某一個變量排序,對排序變量實行set/set操作。

?

expenses含有flightid fltdate??expenses三個變量

incomes含有flightid fltdate??incomes三個變量

兩個表關聯一起的實現可以用proc sql的形式很容易的實現,但是當數據量大時,利用set/set語句的效率遠遠高于sql,尤其是對查詢表簡歷索引之后。

?

?

proc datasets lib=chapt2;

modify income;

index create dteflt=(flightid fltdate)/nomiss unique;

quit;

?

data profit errors;

????set chapt3.expenses;

????set chapt3.income key = dteflt;

????if _iorc_ = 0 then do;

??????profit =sum(income,- expenses);;

??????output profit;

????end;

????else do;

??????_error_ = 0;

??????output errors;

????end;

run;

?

語句?key = dteflt是利用索引鍵來匹配兩個表數據,自動生成的變量_iorc_?0,表示匹配成功,_error_0表示無錯誤信息

總結如下:

對于兩個表有相同的表結構且被查詢的表已經建立了基于該相同變量的索引的情況下,set/set語句是最高效的方式;

主表的指針一般是從第一天一直掃描到最后一條,不走回頭路,但是對于被查詢表,可以根據索引跳躍數據指針;

對應的主表和建立索引的被查詢表一般不再排序;

總結

以上是生活随笔為你收集整理的《SAS编程与数据挖掘商业案例》学习笔记之四的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。