
SAS之大話PDV
之所以說是數(shù)據(jù)源,而非輸入緩沖區(qū)的原因上一條推送已經(jīng)說明,這里就不再啰嗦啦。
這里我們且將DATA步流程簡單地分為從數(shù)據(jù)源讀入到pdv和從pdv寫入數(shù)據(jù)集。
IF語句 & WHERE語句
這兩個語句均是用于條件選擇,但二者作用時機卻大有不同。簡單來說,if語句作用于觀測出PDV到生成數(shù)據(jù)集時;而where語句則作用于觀測進入PDV之時。這也奠定了二者效率上的差別。由于where語句作用于觀測進入PDV之時,SAS讀入的觀測已經(jīng)過選擇,讀入觀測數(shù)較少,所以在讀入較大數(shù)據(jù)之時,where語句的優(yōu)勢就尤為明顯了。
但又是因為where語句作用于觀測進入PDV之時,也帶來了一些限制,如:
當(dāng)提交如上語句之時,SAS將會報錯:
ERROR: 變量 x 不在文件“WORK.B”中。
而使用if語句則不會出現(xiàn)此ERROR。
對于這些選項的作用,相信大家也都有所了解;如不了解,那就得好好補補基礎(chǔ)咯
言歸正傳,對于這些語句的作用時機,就不再一一演示,簡單來說,rename、keep、drop語句用于PDV到生成數(shù)據(jù)集的過程中。而對于選項,則需看選項的位置:
對于上述代碼,大家可自行敲擊運行,就會發(fā)現(xiàn)在數(shù)據(jù)集b生成過程中出現(xiàn)NOTE: 變量 age 未初始化。 原因就在于當(dāng)選項用于set語句時,作用時機為原始數(shù)據(jù)至PDV之間;而當(dāng)選項用于data語句時,則作用于PDV至生成數(shù)據(jù)集之間。
當(dāng)SASDATA步中使用SET語句、MERGE語句和UPDATE語句讀入變量時(除賦值語句和input語句外),SAS將會自動retain,即由這些語句讀入的變量將不會被置缺失。
不多說,上例子:
例1:merge
結(jié)果:
運行過程:
從a讀入第1條觀測,從b讀入第1條觀測,查看id(即by變量)是否匹配,若不匹配,則讀入id較小的觀測,若匹配則一起讀入PDV。此例為匹配。
到達RUN語句,將PDV寫入數(shù)據(jù)集
從a、b分別讀入第2條觀測,檢查發(fā)現(xiàn)不匹配。檢查id是否與PDV中相同,若是,則讀入匹配的觀測(即a中第二條觀測),若都不同,則將較小的id觀測讀入。
達到run語句,OUTPUT;
讀入a的第3條觀測,b的第2條觀測,檢查發(fā)現(xiàn)不匹配。再檢查id發(fā)現(xiàn)a中第3條與PDV中id匹配,將其寫入。后output。
讀入a的第4條觀測,b的第2條觀測,檢查發(fā)現(xiàn)匹配,再檢查發(fā)現(xiàn)與PDV中id不同;此時進入另一個by組,初始化DVP。將匹配的觀測寫入DVP。
讀入a中第5條觀測,b中第3條觀測,發(fā)現(xiàn)id不匹配,再檢查發(fā)現(xiàn)b中第3條觀測id與PDV中id匹配,將其讀入,后output。
讀入a中第5條觀測,b中第4條觀測,發(fā)現(xiàn)id匹配并與PDV中id不同,初始化pdv,將兩條觀測整合寫入PDV,后output。
由于a中觀測已讀完(EOF),讀入b中第5條觀測,發(fā)現(xiàn)與PDV中id不同,初始化PDV,讀入b中第5條觀測,output。注意此時由于沒有匹配,且為新的by組,不存在retain的x變量,所以最后一條觀測中x為空。
a、b數(shù)據(jù)集均到達EOF,程序運行結(jié)束,保存數(shù)據(jù)集。
例2:set
結(jié)果:
這時候大家可能會發(fā)現(xiàn),第二條觀測不是同一個by組嗎?為什么第2條觀測的x變量不是第一條中x的值呢?為什么沒有retain?
然而,其實還是有retain的,只不過數(shù)據(jù)集中體現(xiàn)不出來,而結(jié)果為什么會是那樣呢?這就涉及到PDV的又一個原則,當(dāng)PDV從一個新的數(shù)據(jù)集中讀入觀測時,會將PDV置缺失。
若你想看出retain的效果呢,有個辦法:
對于UPDATA等其他語句,就不再舉例啦,有興趣者可自行探索。
數(shù)據(jù)分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
訓(xùn)練與驗證損失驟升:機器學(xué)習(xí)訓(xùn)練中的異常診斷與解決方案 在機器學(xué)習(xí)模型訓(xùn)練過程中,“損失曲線” 是反映模型學(xué)習(xí)狀態(tài)的核心指 ...
2025-09-19解析 DataHub 與 Kafka:數(shù)據(jù)生態(tài)中兩類核心工具的差異與協(xié)同 在數(shù)字化轉(zhuǎn)型加速的今天,企業(yè)對數(shù)據(jù)的需求已從 “存儲” 轉(zhuǎn)向 “ ...
2025-09-19CDA 數(shù)據(jù)分析師:讓統(tǒng)計基本概念成為業(yè)務(wù)決策的底層邏輯 統(tǒng)計基本概念是商業(yè)數(shù)據(jù)分析的 “基礎(chǔ)語言”—— 從描述數(shù)據(jù)分布的 “均 ...
2025-09-19CDA 數(shù)據(jù)分析師:表結(jié)構(gòu)數(shù)據(jù) “獲取 - 加工 - 使用” 全流程的賦能者 表結(jié)構(gòu)數(shù)據(jù)(如數(shù)據(jù)庫表、Excel 表、CSV 文件)是企業(yè)數(shù)字 ...
2025-09-19SQL Server 中 CONVERT 函數(shù)的日期轉(zhuǎn)換:從基礎(chǔ)用法到實戰(zhàn)優(yōu)化 在 SQL Server 的數(shù)據(jù)處理中,日期格式轉(zhuǎn)換是高頻需求 —— 無論 ...
2025-09-18MySQL 大表拆分與關(guān)聯(lián)查詢效率:打破 “拆分必慢” 的認知誤區(qū) 在 MySQL 數(shù)據(jù)庫管理中,“大表” 始終是性能優(yōu)化繞不開的話題。 ...
2025-09-18DSGE 模型中的 Et:理性預(yù)期算子的內(nèi)涵、作用與應(yīng)用解析 動態(tài)隨機一般均衡(Dynamic Stochastic General Equilibrium, DSGE)模 ...
2025-09-17Python 提取 TIF 中地名的完整指南 一、先明確:TIF 中的地名有哪兩種存在形式? 在開始提取前,需先判斷 TIF 文件的類型 —— ...
2025-09-17CDA 數(shù)據(jù)分析師:解鎖表結(jié)構(gòu)數(shù)據(jù)特征價值的專業(yè)核心 表結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 規(guī)范存儲的結(jié)構(gòu)化數(shù)據(jù),如數(shù)據(jù)庫表、Excel 表、 ...
2025-09-17Excel 導(dǎo)入數(shù)據(jù)含缺失值?詳解 dropna 函數(shù)的功能與實戰(zhàn)應(yīng)用 在用 Python(如 pandas 庫)處理 Excel 數(shù)據(jù)時,“缺失值” 是高頻 ...
2025-09-16深入解析卡方檢驗與 t 檢驗:差異、適用場景與實踐應(yīng)用 在數(shù)據(jù)分析與統(tǒng)計學(xué)領(lǐng)域,假設(shè)檢驗是驗證研究假設(shè)、判斷數(shù)據(jù)差異是否 “ ...
2025-09-16CDA 數(shù)據(jù)分析師:掌控表格結(jié)構(gòu)數(shù)據(jù)全功能周期的專業(yè)操盤手 表格結(jié)構(gòu)數(shù)據(jù)(以 “行 - 列” 存儲的結(jié)構(gòu)化數(shù)據(jù),如 Excel 表、數(shù)據(jù) ...
2025-09-16MySQL 執(zhí)行計劃中 rows 數(shù)量的準(zhǔn)確性解析:原理、影響因素與優(yōu)化 在 MySQL SQL 調(diào)優(yōu)中,EXPLAIN執(zhí)行計劃是核心工具,而其中的row ...
2025-09-15解析 Python 中 Response 對象的 text 與 content:區(qū)別、場景與實踐指南 在 Python 進行 HTTP 網(wǎng)絡(luò)請求開發(fā)時(如使用requests ...
2025-09-15CDA 數(shù)據(jù)分析師:激活表格結(jié)構(gòu)數(shù)據(jù)價值的核心操盤手 表格結(jié)構(gòu)數(shù)據(jù)(如 Excel 表格、數(shù)據(jù)庫表)是企業(yè)最基礎(chǔ)、最核心的數(shù)據(jù)形態(tài) ...
2025-09-15Python HTTP 請求工具對比:urllib.request 與 requests 的核心差異與選擇指南 在 Python 處理 HTTP 請求(如接口調(diào)用、數(shù)據(jù)爬取 ...
2025-09-12解決 pd.read_csv 讀取長浮點數(shù)據(jù)的科學(xué)計數(shù)法問題 為幫助 Python 數(shù)據(jù)從業(yè)者解決pd.read_csv讀取長浮點數(shù)據(jù)時的科學(xué)計數(shù)法問題 ...
2025-09-12CDA 數(shù)據(jù)分析師:業(yè)務(wù)數(shù)據(jù)分析步驟的落地者與價值優(yōu)化者 業(yè)務(wù)數(shù)據(jù)分析是企業(yè)解決日常運營問題、提升執(zhí)行效率的核心手段,其價值 ...
2025-09-12用 SQL 驗證業(yè)務(wù)邏輯:從規(guī)則拆解到數(shù)據(jù)把關(guān)的實戰(zhàn)指南 在業(yè)務(wù)系統(tǒng)落地過程中,“業(yè)務(wù)邏輯” 是連接 “需求設(shè)計” 與 “用戶體驗 ...
2025-09-11塔吉特百貨孕婦營銷案例:數(shù)據(jù)驅(qū)動下的精準(zhǔn)零售革命與啟示 在零售行業(yè) “流量紅利見頂” 的當(dāng)下,精準(zhǔn)營銷成為企業(yè)突圍的核心方 ...
2025-09-11