預(yù)估到手價(jià)是按參與促銷活動(dòng)、以最優(yōu)惠的購(gòu)買方案計(jì)算出的價(jià)格(不含優(yōu)惠券部分),僅供參考,未必等同于實(shí)際到手價(jià)。
有劃線標(biāo)記、光盤等附件不全詳細(xì)品相說(shuō)明>>
-
>
決戰(zhàn)行測(cè)5000題(言語(yǔ)理解與表達(dá))
-
>
軟件性能測(cè)試.分析與調(diào)優(yōu)實(shí)踐之路
-
>
第一行代碼Android
-
>
深度學(xué)習(xí)
-
>
Unreal Engine 4藍(lán)圖完全學(xué)習(xí)教程
-
>
深入理解計(jì)算機(jī)系統(tǒng)-原書(shū)第3版
-
>
Word/Excel PPT 2013辦公應(yīng)用從入門到精通-(附贈(zèng)1DVD.含語(yǔ)音視頻教學(xué)+辦公模板+PDF電子書(shū))
SAS技術(shù)內(nèi)幕:從程序員到數(shù)據(jù)科學(xué)家 版權(quán)信息
- ISBN:9787302502784
- 條形碼:9787302502784 ; 978-7-302-50278-4
- 裝幀:一般膠版紙
- 冊(cè)數(shù):暫無(wú)
- 重量:暫無(wú)
- 所屬分類:>>
SAS技術(shù)內(nèi)幕:從程序員到數(shù)據(jù)科學(xué)家 本書(shū)特色
SAS公司官方推薦學(xué)習(xí)用書(shū)免費(fèi)提供本書(shū)配套源程序下載 循序漸進(jìn)掌握數(shù)據(jù)分析要義和精髓從數(shù)據(jù)中獲取洞見(jiàn)與智慧 北京大學(xué)信息科學(xué)技術(shù)學(xué)院博士生導(dǎo)師、教授 張銘國(guó)務(wù)院發(fā)展研究中心研究員 劉云中艾德思奇(adSage)董事長(zhǎng) 唐朝暉SAS中國(guó)研發(fā)中心總經(jīng)理 劉政慧科集團(tuán)技術(shù)產(chǎn)品中心技術(shù)副總裁 李嘉《SAS編程演義》作者 谷鴻秋北京沖和資產(chǎn)管理有限公司量化投資總監(jiān) 付春光致遠(yuǎn)互聯(lián)高級(jí)副總裁 楊祉雄華為供應(yīng)鏈管理部數(shù)據(jù)科學(xué)家 林建偉SAS中國(guó)銷售總監(jiān)兼合作伙伴與渠道負(fù)責(zé)人 陳云凱 聯(lián)袂誠(chéng)意推薦SAS公司官方推薦 免費(fèi)提供源程序下載 北京大學(xué) 教授 張銘 國(guó)務(wù)院發(fā)展研究中心 劉云中 SAS中國(guó) 劉政 華為數(shù)據(jù)科學(xué)家 林建偉 SAS編程演義 谷鴻秋 推薦業(yè)內(nèi)大咖聯(lián)袂推薦《SAS技術(shù)內(nèi)幕:從程序員到數(shù)據(jù)科學(xué)家》是值得一讀的數(shù)據(jù)分析技術(shù)入門佳作。這本書(shū)是數(shù)據(jù)分析領(lǐng)域資深專家為融合程序員和統(tǒng)計(jì)分析人員的不同視角而編寫的,給讀者在計(jì)算機(jī)程序設(shè)計(jì)世界和數(shù)據(jù)分析世界之間架起一座橋梁……羅馬不是一天建成的!但閱讀本書(shū)將使普通的程序員也能快速入門SAS語(yǔ)言并以*簡(jiǎn)潔的方式掌握SAS編程核心,實(shí)現(xiàn)向優(yōu)秀數(shù)據(jù)科學(xué)家的華麗轉(zhuǎn)身! 北京大學(xué)信息科學(xué)技術(shù)學(xué)院博士生導(dǎo)師、教授 張銘本書(shū)把復(fù)雜的數(shù)據(jù)分析科學(xué)以*簡(jiǎn)單的應(yīng)用和實(shí)例介紹給讀者,是一本難得的告訴你用SAS將數(shù)據(jù)變?yōu)橹R(shí),將知識(shí)變?yōu)闆Q策的好書(shū)! 國(guó)務(wù)院發(fā)展研究中心研究員 劉云中SAS是數(shù)據(jù)分析、數(shù)據(jù)挖掘和人工智能的領(lǐng)軍平臺(tái)。本書(shū)集結(jié)了作者多年從事數(shù)據(jù)分析和商業(yè)智能研究與實(shí)踐的經(jīng)驗(yàn)。用SAS平臺(tái)深入淺出地給程序員介紹了數(shù)據(jù)挖掘的基礎(chǔ)與精髓,幫助他們成為數(shù)據(jù)分析的真正專家,非常推薦! 艾德思奇(adSage)董事長(zhǎng) 唐朝暉現(xiàn)在很多企業(yè)都開(kāi)始進(jìn)入數(shù)據(jù)分析領(lǐng)域,由于沒(méi)有現(xiàn)成的、足夠多的數(shù)據(jù)分析人員,企業(yè)只能讓現(xiàn)有的軟件開(kāi)發(fā)人員承擔(dān)這些責(zé)任。然而,軟件開(kāi)發(fā)人員與數(shù)據(jù)分析人員的思維是有差異的,也就是確定性的結(jié)果和概率性的結(jié)果的差異。如何幫助這些軟件開(kāi)發(fā)人員成為合格的雙重人才,需要一定的知識(shí)補(bǔ)充和理論指導(dǎo)。巫銀良先生根據(jù)自己豐富的從業(yè)實(shí)踐與行業(yè)觀察總結(jié)出來(lái)的這本書(shū)正好填補(bǔ)了這一空白,值得推薦! SAS中國(guó)研發(fā)中心總經(jīng)理 劉政當(dāng)我看到標(biāo)題的一刻,心想這可能又是一個(gè)專門針對(duì)程序員講解編程的書(shū)。但當(dāng)我打開(kāi)書(shū),慢慢品讀的時(shí)候,有的是驚喜;在書(shū)中,可以看到與數(shù)學(xué)概念相關(guān)的歷史、公式,計(jì)算機(jī)技術(shù)以及SAS 編程的有機(jī)融合。我一口氣讀下來(lái),沒(méi)有感到晦澀和枯燥,這是一本值得推薦的好書(shū)。 華為供應(yīng)鏈管理部數(shù)據(jù)科學(xué)家 林建偉
SAS技術(shù)內(nèi)幕:從程序員到數(shù)據(jù)科學(xué)家 內(nèi)容簡(jiǎn)介
本書(shū)共27章,分為上下兩卷:上卷介紹SAS編程基礎(chǔ)與使用方法,是廣大程序員快速掌握SAS編程技術(shù)的簡(jiǎn)明開(kāi)發(fā)教程;下卷闡述數(shù)據(jù)分析的關(guān)鍵基礎(chǔ)知識(shí)并提供相應(yīng)SAS代碼實(shí)現(xiàn),目的是激發(fā)讀者興趣,跨越傳統(tǒng)編程與數(shù)據(jù)分析的鴻溝,從程序員華麗轉(zhuǎn)身為數(shù)據(jù)科學(xué)家。書(shū)中演示代碼力圖簡(jiǎn)潔清晰地解釋相關(guān)概念,追求大道至簡(jiǎn)。本書(shū)兼顧編程技術(shù)與數(shù)據(jù)分析,期許程序員、信息處理與統(tǒng)計(jì)分析人員以及對(duì)數(shù)據(jù)分析科學(xué)感興趣的讀者都能從本書(shū)中獲益良多,循序漸進(jìn)地掌握數(shù)據(jù)分析的要義和精髓,從數(shù)據(jù)中獲取洞見(jiàn)與智慧。
SAS技術(shù)內(nèi)幕:從程序員到數(shù)據(jù)科學(xué)家 目錄
第1章 SAS語(yǔ)言入門 002
1.1 語(yǔ)言概述 005
1.2 編程環(huán)境 010
1.3 SAS Studio編程 016
第2章 數(shù)據(jù)集與DATA步 032
2.1 SAS 邏輯庫(kù) 032
2.2 SAS 數(shù)據(jù)集 036
2.3 DATA 步 041
2.3.1 內(nèi)嵌數(shù)據(jù)行或外部數(shù)據(jù)文件 043
2.3.2 通過(guò)已有 SAS 數(shù)據(jù)集生成 048
2.3.3 通過(guò) PROC IMPORT 或 PROC SQL 生成 051
2.4 DATA 步的運(yùn)行機(jī)制 054
2.4.1 編譯階段 055
2.4.2 運(yùn)行階段 056
2.5 DATA 步語(yǔ)句快速索引 057
第3章 變量與表達(dá)式 062
3.1 常量與變量 062
3.1.1 變量長(zhǎng)度與缺失值 063
3.1.2 數(shù)值常量 065
3.1.3 日期/時(shí)間/日期時(shí)間常量 067
3.1.4 字符常量 067
3.2 表達(dá)式 068
3.2.1 運(yùn)算符 068
3.2.2 運(yùn)算符優(yōu)先順序 072
3.2.3 WHERE 語(yǔ)句特定運(yùn)算符 072
3.2.4 賦值語(yǔ)句 073
3.2.5 累加賦值語(yǔ)句 074
3.2.6 RETAIN 語(yǔ)句 075
SAS技術(shù)內(nèi)幕:從程序員到數(shù)據(jù)科學(xué)家
3.3 SAS數(shù)組 077
3.3.1 數(shù)組名稱 079
3.3.2 數(shù)組元素變量列表 079
3.3.3 數(shù)組長(zhǎng)度 080
3.3.4 隱式下標(biāo)變量 080
3.3.5 多維數(shù)組 081
3.3.6 臨時(shí)數(shù)組 082
3.3.7 數(shù)組排序 083
3.3.8 注意事項(xiàng) 084
第4章 流程控制 087
4.1 DO-END語(yǔ)句塊 087
4.2 分支控制 088
4.2.1 IF-THEN 分支控制 088
4.2.2 ELSE-IF 多分支控制 090
4.2.3 SELECT-WHEN 多分支控制 090
4.3 循環(huán)控制 091
4.3.1 指定次數(shù)的循環(huán):DO-TO-BY 091
4.3.2 指定條件的循環(huán):DO-WHILE 與 DO-UNTIL092
4.3.3 指定集合的循環(huán):DO-OVER 093
4.4 特殊的流程控制語(yǔ)句 094
4.4.1 跳出循環(huán)語(yǔ)句:LEAVE 094
4.4.2 繼續(xù)循環(huán)語(yǔ)句:CONTINUE 094
4.4.3 返回語(yǔ)句:RETURN 095
4.4.4 中止執(zhí)行語(yǔ)句:STOP 與 ABORT 095
4.4.5 跳轉(zhuǎn)語(yǔ)句:GOTO 與 LINK 096
第 5章 函數(shù)封裝 099
5.1 LINK-RETURN 技術(shù) 101
5.2 SAS宏函數(shù)封裝 103
5.3 FCMP函數(shù) 105
5.4 系統(tǒng)函數(shù)速查 110
第6章 SAS宏 113
6.1 宏變量 114
6.1.1 命名 114
6.1.2 作用域 114
6.1.3 系統(tǒng)宏 115
6.1.4 宏代碼調(diào)試 117
目 錄
XIII
6.1.5 宏表達(dá)式 117
6.2 宏函數(shù) 119
參數(shù)定義 120
6.3 邏輯控制 121
6.3.1 宏語(yǔ)句塊 121
6.3.2 條件分支 121
6.3.3 循環(huán)控制 121
6.4 系統(tǒng)宏函數(shù) 122
第7章 DS2 124
7.1 程序結(jié)構(gòu) 126
7.1.1 變量聲明與類型 126
7.1.2 程序?qū)嶓w作用域 129
7.1.3 變量數(shù)組與標(biāo)準(zhǔn)數(shù)組 130
7.1.4 系統(tǒng)方法與用戶自定義方法 131
7.2 數(shù)據(jù)程序 136
7.3 包程序 137
7.4 線程程序 143
第8章 代碼組織 149
8.1 靜態(tài)文件包含 149
8.2 程序中動(dòng)態(tài)擴(kuò)展代碼 151
8.3 動(dòng)態(tài)執(zhí)行外部命令 153
第9章 文件讀寫 157
9.1 二進(jìn)制文件讀寫 157
9.2 文本文件讀寫 159
9.3 順序讀取多個(gè)文件 162
9.4 并行讀取多個(gè)文件 165
9.5 共享緩沖區(qū)讀寫 166
第10章 按位運(yùn)算 168
10.1 按位運(yùn)算 168
10.2 實(shí)現(xiàn)方法 169
10.3 按位運(yùn)算應(yīng)用 173
第11章 擴(kuò)展SAS功能 177
11.1 通過(guò) Module調(diào)用外部 DLL函數(shù) 177
11.2 用 C 語(yǔ)言開(kāi)發(fā)用戶函數(shù)庫(kù) 182
11.2.1 準(zhǔn)備64位 C 編譯環(huán)境 182
SAS技術(shù)內(nèi)幕:從程序員到數(shù)據(jù)科學(xué)家
11.2.2 開(kāi)發(fā)用戶自定義動(dòng)態(tài)庫(kù) 183
11.3 PROTO 編寫 C 代碼或注冊(cè)外部 DLL 184
第12章 數(shù)據(jù)結(jié)構(gòu)——數(shù)組 187
12.1 數(shù)組 187
12.1.1 DATA步數(shù)組 187
12.1.2 FCMP 數(shù)組 189
12.1.3 DS2 數(shù)組 192
12.1.4 SAS宏數(shù)組 193
12.2 數(shù)組應(yīng)用:高精度數(shù)值計(jì)算 194
第13章 數(shù)據(jù)結(jié)構(gòu)——隊(duì)列與堆棧 196
13.1 隊(duì)列 196
13.1.1 函數(shù)版實(shí)現(xiàn)與示例 196
13.1.2 宏版實(shí)現(xiàn)與示例 199
13.2 堆棧 202
函數(shù)版實(shí)現(xiàn)與示例 202
第14章 數(shù)據(jù)結(jié)構(gòu)——鏈表 206
14.1 基礎(chǔ)知識(shí) 206
14.2 如何在 SAS 代碼中內(nèi)嵌 C 語(yǔ)言代碼 207
14.3 單向鏈表和雙向鏈表 209
14.4 鏈表應(yīng)用:約瑟夫斯問(wèn)題 216
第15章 數(shù)據(jù)結(jié)構(gòu)——二叉樹(shù) 221
15.1 PROTO 實(shí)現(xiàn)與封裝 221
15.2 FCMP二叉樹(shù)實(shí)現(xiàn) 227
15.3 二叉樹(shù)應(yīng)用:算術(shù)表達(dá)式求值 231
第16章 數(shù)據(jù)結(jié)構(gòu)——矩陣運(yùn)算 235
16.1 FCMP 矩陣運(yùn)算 236
16.2 DS2 矩陣運(yùn)算 243
16.3 矩陣應(yīng)用:線性方程組求解 246
16.4 矩陣應(yīng)用:非線性方程組求解 248
第17章 數(shù)據(jù)結(jié)構(gòu)——圖 255
17.1 深度優(yōu)先和廣度優(yōu)先遍歷 256
17.2 *短路徑問(wèn)題 260
17.2.1 Dijkstra算法 261
17.2.2 Bellman-Ford 算法 263
17.2.3 Floyd-Warshall 算法 265
目 錄
下 卷
第18章 統(tǒng)計(jì)學(xué)基礎(chǔ) 270
18.1 數(shù)據(jù)特征度量 270
18.1.1 集中趨勢(shì)度量 272
18.1.2 離散趨勢(shì)度量 274
18.1.3 分布特征度量 277
18.1.4 置信區(qū)間、置信水平與 p-值 279
18.2 統(tǒng)計(jì)學(xué)上的變量類型 280
18.3 基本數(shù)據(jù)處理 283
18.3.1 排序與排名 284
18.3.2 數(shù)據(jù)轉(zhuǎn)置 285
18.3.3 堆疊與拆分 286
18.3.4 過(guò)濾數(shù)據(jù) 287
18.3.5 隨機(jī)抽樣 289
18.3.6 基本統(tǒng)計(jì)量 290
18.4 基本圖形圖表 292
18.5 SAS 產(chǎn)品與過(guò)程步概覽 303
18.5.1 SAS核心產(chǎn)品功能簡(jiǎn)介 305
18.5.2 Base SAS 過(guò)程步速查 309
18.5.3 SAS/STAT過(guò)程步速查 318
第19章 大數(shù)定律與中心極限定理 327
19.1 大數(shù)定律 327
19.1.1 弱大數(shù)定律 327
19.1.2 三種大數(shù)定律 329
19.1.3 圖形化證明 330
19.1.4 強(qiáng)大數(shù)定律 333
19.2 中心極限定理 334
19.2.1 大數(shù)定律與中心極限定理關(guān)系 335
19.2.2 圖形化證明 336
19.2.3 實(shí)際用途 340
第20章 統(tǒng)計(jì)分布 342
20.1 均勻分布 342
20.2 離散型統(tǒng)計(jì)分布 345
20.2.1 伯努利分布 345
SAS技術(shù)內(nèi)幕:從程序員到數(shù)據(jù)科學(xué)家
20.2.2 二項(xiàng)分布 347
20.2.3 幾何分布 353
20.2.4 負(fù)二項(xiàng)分布 357
20.2.5 超幾何分布 360
20.2.6 泊松分布 362
20.3 連續(xù)型統(tǒng)計(jì)分布 365
20.3.1 正態(tài)分布 365
20.3.2 對(duì)數(shù)正態(tài)分布 373
20.3.3 指數(shù)分布 376
20.3.4 卡方分布 379
20.3.5 學(xué)生t-分布 381
20.3.6 F分布 387
20.3.7 柯西分布 390
20.3.8 貝塔分布 392
20.3.9 伽馬分布 395
20.3.10 愛(ài)爾朗分布 397
20.3.11 韋布爾分布 399
20.3.12 三角分布 400
20.3.13 Table 分布 401
附錄:各統(tǒng)計(jì)分布之間的關(guān)系 403
第21章 方差分析 404
21.1 假設(shè)檢驗(yàn) 404
21.2 方差分析 406
21.2.1 學(xué)生t-檢驗(yàn) 406
21.2.2 單因子方差分析 408
21.2.3 雙因子方差分析 418
第22章 數(shù)據(jù)標(biāo)準(zhǔn)化 421
22.1 常用標(biāo)準(zhǔn)化方法 421
22.2 SAS數(shù)據(jù)標(biāo)準(zhǔn)化 424
22.3 自定義數(shù)據(jù)標(biāo)準(zhǔn)化 429
第23章 主成分分析與因子分析 433
23.1 主成分分析 434
23.1.1 主成分分析原理 435
23.1.2 主成分分析的具體步驟 436
23.2 因子分析 443
目 錄
23.2.1 因子分析原理 443
23.2.2 巴特利球度檢驗(yàn)和 KMO 檢驗(yàn) 443
23.2.3 因子分析的具體步驟 445
第24章 相關(guān)分析與回歸分析 450
24.1 變量關(guān)系 450
24.2 相關(guān)分析 451
24.2.1 線性相關(guān)性度量 451
24.2.2 非參數(shù)關(guān)聯(lián)度量 452
24.2.3 定量數(shù)據(jù)的相關(guān)分析 455
24.2.4 類別數(shù)據(jù)的相關(guān)分析 457
24.3 回歸分析 460
第25章 聚類分析 467
25.1 聚類度量 469
25.1.1 距離系數(shù) 469
25.1.2 相似性/相關(guān)系數(shù) 471
25.1.3 SAS實(shí)踐 473
25.2 聚類形成方法 475
25.2.1 一次形成分類系統(tǒng) 475
25.2.2 K-均值聚類 477
25.2.3 逐步形成分類系統(tǒng) 485
25.2.4 R 型聚類分析 491
25.3 自己實(shí)現(xiàn)聚類算法 494
25.3.1 K-均值方法 494
25.3.2 逐步形成分類系統(tǒng) 501
附錄:聚類度量的自定義實(shí)現(xiàn) 509
第26章 神經(jīng)網(wǎng)絡(luò) 512
26.1 神經(jīng)元模型 513
26.2 神經(jīng)網(wǎng)絡(luò) 517
26.2.1 訓(xùn)練神經(jīng)網(wǎng)絡(luò) 519
26.2.2 反向傳播算法 519
26.3 SAS 代碼實(shí)現(xiàn)與范例 524
第27 章 π高精度求解與探索分析 536
27.1 π值計(jì)算 537
27.1.1 蒙特卡羅方法 543
27.1.2 蒲豐投針?lè)椒?544
SAS技術(shù)內(nèi)幕:從程序員到數(shù)據(jù)科學(xué)家
27.1.3 微積分方法 545
27.1.4 冪級(jí)數(shù)方法 546
27.1.5 冪級(jí)數(shù)高精度方法 548
27.1.6 梅欽類公式高精度方法 550
27.1.7 迭代方法——貝拉公式 554
27.2 π值分析 557
27.2.1 數(shù)字分布規(guī)律 558
27.2.2 可視化探索 561
附錄 564
參考文獻(xiàn) 598
SAS技術(shù)內(nèi)幕:從程序員到數(shù)據(jù)科學(xué)家 節(jié)選
SAS技術(shù)內(nèi)幕:從程序員到數(shù)據(jù)科學(xué)家 個(gè)RUN 語(yǔ)句,但只有在遇到 QUIT 語(yǔ)句時(shí) SAS 才釋放系統(tǒng)資源返回當(dāng)前SAS 會(huì)話。 ●全局語(yǔ)句:在 DATA 步或PROC步之外,SAS還包括若干全局語(yǔ)句,通常用于指 定全局選項(xiàng)或者其他全局性的功能。比如 TITLE語(yǔ)句就可用來(lái)指定后續(xù)PROC 步 輸出報(bào)告的標(biāo)題文字,其中TITLE# (#為數(shù)字,如TITLE2)全局語(yǔ)句可用來(lái)指 定特定級(jí)別的標(biāo)題,*多可達(dá)11級(jí)。如果希望在輸出的圖表中關(guān)閉特定級(jí)別的 報(bào)表標(biāo)題,用戶可以無(wú)參數(shù)調(diào)用TITLE 語(yǔ)句來(lái)實(shí)現(xiàn)。比如程序 1-2 可設(shè)置報(bào)表 輸出的標(biāo)題。 程序1-2 全局語(yǔ)句 title "The title of my first report"; /*設(shè)置輸出報(bào)告的標(biāo)題*/ title2 "Author:Yinliang Wu"; /*設(shè)置第二級(jí)的報(bào)告標(biāo)題*/ title; /*關(guān)閉報(bào)告標(biāo)題*/ 各種SAS 選項(xiàng)語(yǔ)句也屬于全局語(yǔ)句,功能上類似于操作系統(tǒng)的環(huán)境變量,不過(guò)它 用來(lái)指定當(dāng)前SAS 會(huì)話有關(guān)的系統(tǒng)設(shè)置,如程序1-3 用于設(shè)置當(dāng)前會(huì)話(Session)的 語(yǔ)言區(qū)域?qū)傩裕↙ocale)為英文,此時(shí)后續(xù)的過(guò)程步都會(huì)受此選項(xiàng)影響輸出英文語(yǔ)言 的報(bào)告。 程序1-3 全局語(yǔ)句 options locale=en_US;/*設(shè)置會(huì)話的語(yǔ)言區(qū)域?qū)傩?/ ●DATA 步:數(shù)據(jù)步負(fù)責(zé)為后續(xù)數(shù)據(jù)步或過(guò)程步準(zhǔn)備待分析的數(shù)據(jù),它是SAS語(yǔ)言 核心的組成部分之一。其基本語(yǔ)法為 data mydata; ; run; 比如程序1-4 創(chuàng)建一行具有5 列的數(shù)據(jù)表,其中Name 和Sex 是字符型變量,其他 3 個(gè)為數(shù)值型變量。它與系統(tǒng)數(shù)據(jù)集sashelp.class 的表結(jié)構(gòu)類似。 程序1-4 DATA步范例 data mydata; input Name $ Sex $ Age Height Weight; datalines; LEON M 30 175 83.5 run; ●PROC步:SAS過(guò)程步是執(zhí)行特定任務(wù)的一系列SAS語(yǔ)句的集合,它以 PROC 語(yǔ) 句開(kāi)始,一般到下一個(gè) RUN語(yǔ)句結(jié)束;如前所述,某些PROC 如PROC SQL 允許 有多條RUN語(yǔ)句提交代碼到DBMS內(nèi)執(zhí)行,但只有當(dāng)該P(yáng)ROC*后一個(gè)QUIT語(yǔ) 句運(yùn)行后才會(huì)釋放資源返回SAS會(huì)話環(huán)境。每個(gè)過(guò)程步都有自己特定的SAS 語(yǔ) 句,也有很多過(guò)程步共享相同的SAS 語(yǔ)句和參數(shù)選項(xiàng),如幾乎所有的過(guò)程步都 有data= 參數(shù)用來(lái)指定待處理的輸入數(shù)據(jù)集名稱(見(jiàn)程序1-5)。 程序1-5 PROC步范例 proc contents data=mydata; run; proc print data=mydata; var name height; run; 參數(shù)data=mydata是proc contents和proc print兩個(gè)過(guò)程步語(yǔ)句都有的選項(xiàng),用來(lái)指 定過(guò)程步的輸入數(shù)據(jù)集。如果過(guò)程步?jīng)]有指定data=參數(shù),則系統(tǒng)默認(rèn)使用當(dāng)前SAS 會(huì)話中*后使用或生成的那個(gè)數(shù)據(jù)集,該數(shù)據(jù)集的名稱也存在于當(dāng)前會(huì)話的系統(tǒng)宏變 量&SYSLAST。 ● 程序注釋:代碼注釋通常用于標(biāo)注不可執(zhí)行的文本,如描述程序的功能,或出于生 成文檔的目的在代碼中添加說(shuō)明性文本。注釋還可用來(lái)在調(diào)試代碼過(guò)程中將已經(jīng) 調(diào)試好的SAS代碼暫時(shí)隔離,當(dāng)代碼運(yùn)行時(shí)注釋中的代碼會(huì)被編譯器自動(dòng)忽略,但 SAS注釋依然會(huì)被寫入SAS日志文件。 鑒于SAS宏本質(zhì)是文本替換,需要特別注意的 一點(diǎn)是在MACRO宏代碼中應(yīng)盡量使用塊注釋,謹(jǐn)慎使用行注釋以免導(dǎo)致不期望的宏 展開(kāi),宏代碼中使用行注釋應(yīng)中以 %* 開(kāi)始,分號(hào)結(jié)束。SAS塊注釋和行注釋如下。 (1)塊注釋:SAS 語(yǔ)言支持C/C++和 Java 等語(yǔ)言廣泛使用的塊注釋,它以 /*開(kāi) 始,以后續(xù)*近的*/號(hào)結(jié)束,注釋可以包含分號(hào)以及任何長(zhǎng)度的文本,也可以跨行(見(jiàn) 程序 1-6)。但SAS代碼不支持嵌套使用塊注釋。 程序1-6 塊注釋 /* * 塊注釋1… */ proc contents data=mydata; run; (2)行注釋:行注釋以星號(hào)“*”開(kāi)始,結(jié)束于*近的一個(gè)分號(hào)“;”處。雖然它可 注釋多行文本,但它總是以*近的一個(gè)分號(hào)(包括引號(hào)中的分號(hào))結(jié)束;其設(shè)計(jì)初衷用 于調(diào)試過(guò)程中注釋掉單行語(yǔ)句,跨多行的文本建議使用塊注釋以免產(chǎn)生意想不到的結(jié)果。 (見(jiàn)程序 1-7)。 程序1-7 行注釋 * 行注釋1…; proc contents data=mydata; * 行注釋2…; * 行注釋3…; run; 雖然SAS代碼在格式上具有很強(qiáng)的靈活性,但良好的代碼風(fēng)格能提高代碼的可讀性 和可維護(hù)性。因此,一般情況下請(qǐng)遵循如下SAS代碼格式化規(guī)范,使SAS代碼具有較 強(qiáng)的可讀性。 (1)全局語(yǔ)句、DATA / PROC步語(yǔ)句、步結(jié)束語(yǔ)句RUN / QUIT 等語(yǔ)句應(yīng)開(kāi)始于 **列,而其他子語(yǔ)句通常采用逐級(jí)縮進(jìn),以顯示層次結(jié)構(gòu)關(guān)系。 SAS技術(shù)內(nèi)幕:從程序員到數(shù)據(jù)科學(xué)家 (2)SAS 步與步之間通常用空行分隔,以表示SAS 代碼的編譯邊界,方便代碼錯(cuò) 誤調(diào)試。 (3)當(dāng)單行代碼因參數(shù)較多導(dǎo)致長(zhǎng)度較大時(shí),應(yīng)折行處理,并在該語(yǔ)句的結(jié)束分 號(hào)后加上一個(gè)空行。 總的來(lái)說(shuō),SAS 的DATA 步和PROC 步是SAS 語(yǔ)言對(duì)數(shù)據(jù)分析工作的精妙抽象和 完美封裝,數(shù)據(jù)步主要解決待分析的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)準(zhǔn)備問(wèn)題,而過(guò)程步解決特定分析 方法和流程的實(shí)現(xiàn)和封裝;這兩種SAS 步就像數(shù)據(jù)結(jié)構(gòu)和算法設(shè)計(jì),大體上分別負(fù)責(zé)數(shù) 據(jù)結(jié)構(gòu)和算法邏輯實(shí)現(xiàn)。只有當(dāng)需要更加復(fù)雜的自定義數(shù)據(jù)處理和分析算法時(shí),才需要 后面章節(jié)中將會(huì)講到的各種函數(shù)封裝進(jìn)行擴(kuò)展。 1.2 編程環(huán)境 SAS 編程需要使用什么樣的開(kāi)發(fā)環(huán)境?其實(shí)它跟其他計(jì)算機(jī)語(yǔ)言一樣,可用任何純 文本編輯器編寫SAS 代碼,如 Windows 平臺(tái)的記事本,NotePad+ + 或者UltraEditor 工具。 也可以使用UNIX 上的vi 來(lái)編輯代碼,不過(guò)需要注意的是Windows 平臺(tái)使用回車換行符 CRLF 而Unix 平臺(tái)使用換行符LF 進(jìn)行文本換行。用文本編輯器生成的SAS 代碼文件,其 文件編碼(File Encoding )需要與SAS 運(yùn)行時(shí)的會(huì)話編碼(Session Encoding )匹配,否則可 能出現(xiàn)不期望的亂碼或程序行為。這并不是SAS 語(yǔ)言編程特定的文件處理問(wèn)題,而是所有 編程語(yǔ)言都會(huì)面臨的源代碼文件編碼和編譯器讀取文件的所采用的編碼之間的匹配問(wèn)題。 在SAS 執(zhí)行環(huán)境中檢查當(dāng)前SAS 會(huì)話編碼,可使用PROC OPTIONS 過(guò)程步檢查(見(jiàn) 程序 1-8),它會(huì)輸出當(dāng)前SAS 系統(tǒng)使用的默認(rèn)語(yǔ)言區(qū)域設(shè)置以及字符集編碼信息。 程序1-8 檢查當(dāng)前SAS會(huì)話的Locale/Encoding 設(shè)置 proc options option=(locale encoding); run; 對(duì)于用戶用文本編輯器編寫好的SAS 代碼,如何用命令行方式編譯運(yùn)行SAS 代碼? 對(duì)于已經(jīng)安裝好SAS 環(huán)境的機(jī)器,用戶只需要調(diào)用sas.exe 然后指定-sysin 命令行參數(shù) 將SAS 代碼文件的全路徑傳遞給SAS 即可。默認(rèn)SAS 代碼運(yùn)行后生成的日志文件會(huì)輸 出到當(dāng)前路徑,用戶也可以使用命令行參數(shù)-log 進(jìn)行指定。比如: C:\>"C:\Program Files\SASHome\SASFoundation\9.4\sas.exe" -sysin C:\temp\helloworld.sas -log C:\temp\helloworld.log SAS 默認(rèn)使用配置文件為C:\Program Files\SASHome\SASFoundation\9.4\sasv9.cfg, 也就是當(dāng)前機(jī)器上安裝SAS 時(shí)生成的默認(rèn)配置。檢查該文件的內(nèi)容可發(fā)現(xiàn)它默認(rèn)指向 了SAS 安裝目錄下面的某個(gè)語(yǔ)言特定的配置文件。比如在中文環(huán)境上安裝的SAS,該 sasv9.cfg 文件的內(nèi)容如下,表示默認(rèn)使用中文配置來(lái)建立SAS 會(huì)話環(huán)境并運(yùn)行SAS 代碼。 -config "C:\Program Files\SASHome\SASFoundation\9.4\nls\zh\sasv9.cfg" 如果用戶想在中文的環(huán)境上運(yùn)行特定配置的SAS,如希望用純英文版SAS執(zhí)行用 戶代碼,用戶只需要在運(yùn)行SAS代碼時(shí)直接指定特定配置文件即可。檢查該環(huán)境運(yùn)行的 SAS日志文件將會(huì)發(fā)現(xiàn)所有的輸出內(nèi)容變成了英文文本。 C:\>"C:\Program Files\SASHome\SASFoundation\9.4\sas.exe" -config "C:\Program Files\SASHome\SASFoundation\9.4\nls\en\sasv9.cfg" -sysin C:\temp\helloworld.sas -log C:\temp\helloworld.log 同理,如果想用英文版SAS執(zhí)行代碼但程序中又要支持處理中文數(shù)據(jù),用戶則可以 使用SAS安裝目錄中的 nls\1d\sasv9.cfg 配置文件;如果想用Unicode版本的SAS來(lái)運(yùn) 行代碼,則需要使用 nls\u8\sasv9.cfg 配置文件。
SAS技術(shù)內(nèi)幕:從程序員到數(shù)據(jù)科學(xué)家 作者簡(jiǎn)介
巫銀良 SAS 中國(guó)研發(fā)中心技術(shù)總監(jiān),北京大學(xué)信息科學(xué)技術(shù)學(xué)院客座教授。主要負(fù)責(zé)SAS 中國(guó)研發(fā)中心大數(shù)據(jù)與可視化分析技術(shù)、可視化數(shù)據(jù)挖掘與機(jī)器學(xué)習(xí),商業(yè)智能和移動(dòng)應(yīng)用等產(chǎn)品線的項(xiàng)目管理。 畢業(yè)于北京大學(xué),獲理學(xué)學(xué)士和碩士學(xué)位。擁有近 20 年計(jì)算機(jī)行業(yè)研發(fā)和管理經(jīng)驗(yàn),在企業(yè)應(yīng)用和商業(yè)分析領(lǐng)域有深厚的技術(shù)功底。專注于研發(fā)管理和項(xiàng)目實(shí)踐,涉及領(lǐng)域包括人工智能、大數(shù)據(jù)與可視化分析、金融量化分析與自動(dòng)交易、商業(yè)智能與互聯(lián)網(wǎng)、大型商業(yè)軟件研發(fā)管理等。
- >
隨園食單
- >
自卑與超越
- >
龍榆生:詞曲概論/大家小書(shū)
- >
中國(guó)人在烏蘇里邊疆區(qū):歷史與人類學(xué)概述
- >
詩(shī)經(jīng)-先民的歌唱
- >
二體千字文
- >
我與地壇
- >
小考拉的故事-套裝共3冊(cè)