版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第四章 SAS語言與 數(shù)據(jù)管理功能,第四章,2,掌握SAS數(shù)據(jù)步語言 掌握SAS數(shù)據(jù)集的創(chuàng)建 掌握SAS數(shù)據(jù)集的加工整理,內(nèi)容與要求,第四章,3,第四章,4,SAS語言,在Windows環(huán)境下運用SAS系統(tǒng)進行常用的統(tǒng)計分析時,雖然前面介紹的兩個菜單系統(tǒng)可讓用戶不必編寫程序而方便地使用SAS系統(tǒng)的數(shù)據(jù)管理和一些統(tǒng)計分析功能,但目前并不是所有的統(tǒng)計方法 都可以通過菜單系統(tǒng)來實現(xiàn),如“應(yīng)用多元統(tǒng)計分析”中將介紹的一些統(tǒng)計方法以及一些特殊或較深入的分析功能必須用編程實現(xiàn).編程是功能最強的使用SAS系統(tǒng)進行統(tǒng)計分析的方法.,第四章,5,SAS語言是一種專用的數(shù)據(jù)處理、統(tǒng)計計算語言,但是它也包含一般的高
2、級語言編程能力并擴充了許多數(shù)學(xué)、統(tǒng)計等方面的函數(shù)。下面我們先介紹一些SAS函數(shù),然后結(jié)合SAS要完成的操作來介紹SAS語言,如用來進行一般編程計算的功能及其獨特的數(shù)據(jù)處理功能。 SAS數(shù)據(jù)步的數(shù)據(jù)輸入、整理功能很強,以下只能介紹常用的功能。希望進行復(fù)雜的數(shù)據(jù)管理的讀者可以參考Base SAS的使用手冊。,第四章,6,SAS語言也是一種計算機語言,常稱為非過程語言或第四代語言. 過程語言一般是指 : BASIC語言, C語言,Fortran 語言 等需要給出計算過程的語言. 第一代至第四代語言是指:機器語言,匯編語言,高級語言(如Fortran 語言等),非過程語言.,第四章,7,同其他計算機語
3、言一樣,SAS語言也有它自己的語匯和句法-關(guān)鍵詞和連結(jié)關(guān)鍵詞與 其他輔助信息的規(guī)則. 用戶使用SAS語言來生成數(shù)據(jù)集并規(guī)定對數(shù)據(jù)怎樣做統(tǒng)計分析的問題 . 由SAS語句組成的序列稱為SAS程序. 一個SAS語句是由SAS關(guān)鍵詞、SAS名字、特殊字符和運算符組成的字符串,并以分號(;)結(jié)尾,它要求SAS系統(tǒng)執(zhí)行一種操作或給SAS系統(tǒng)提供信息.,第四章,8,SAS語句,許多SAS語句都是以關(guān)鍵詞開始并用它識別語句的類型.如DATA語句、PROC語句、INPUT語句等. SAS語句中可能出現(xiàn)的SAS名字種類很多,如變量 名SAS數(shù)據(jù)集名、格式名、過程名、數(shù)組名、語句標 號名、以及作為文件標記和庫標記的
4、特殊名字. SAS名字最多可由32(V6為8)個字符組成,第一個 字符必須是字母(A,B,Z)或下劃線( _ ),后面的字符可以是字母,數(shù)字(0,1,2,9)或下劃線. 每個SAS語句都用分號(;)結(jié)束,出現(xiàn)在SAS語句中的其他特殊字符和算符有圓括號( ),美元符號(),小數(shù)點號(),等號(),冒號(: )和加號().,第四章,9,SAS語句書寫的格式較為靈活: 語句可以在某一行的任何位置開始和結(jié)束; 詞間可任意加入空格和換行; 一個語句可以寫成幾行,只要語句中的關(guān)鍵詞不 被斷開就可以; 多個語句可寫在一行; SAS語句用大寫字母、小寫字母或兩者混合書寫均可以.但字符型數(shù)據(jù)值要區(qū)分大小寫,比如
5、Beijing 和BEIJING被認為是不同的數(shù)據(jù)值.,第四章,10,SAS程序,一序列SAS語句組成一個SAS程序.SAS程序中的語句分別屬于兩類步驟:DATA步和PROC步.這兩類步驟是所有SAS程序的組成部分.每一步是一段相對完整的可以單獨運行的程序。 通常用DATA步產(chǎn)生SAS數(shù)據(jù)集,而用PROC步對SAS數(shù)據(jù)集中的數(shù)據(jù)進行分析處理并輸出結(jié)果. 一個SAS程序可由一個DATA步或一個PROC步組成;或者由DATA步和PROC步兩部分組成;也可由多個DATA步和PROC步組成.,第四章,11,用戶提交的 SAS 程序由許多程序步構(gòu)成。,數(shù)據(jù)步 DATA步,過程步 PROC步,原始 數(shù)據(jù),
6、SAS表,SAS表,報告,數(shù)據(jù)步常用于創(chuàng)建數(shù)據(jù)集,過程步常用于處理數(shù)據(jù)集(生成 報表、圖形和實現(xiàn)數(shù)據(jù)分析功能),SAS編程基本概念,第四章,12,數(shù)據(jù)步以DATA語句開始, RUN語句結(jié)尾,用于創(chuàng)建和加工SAS數(shù)據(jù)集. 在數(shù)據(jù)步中使用的SAS語句包括: 文件操作語句-要求SAS創(chuàng)建一個或幾個新的SAS數(shù)據(jù)集的語句,如DATA、INPUT、CARDS、INFILE、SET、MERGE等語句; 運行語句-對創(chuàng)建數(shù)據(jù)集所必須進行的運算語句,如賦值、累加、Where等語句;,SAS數(shù)據(jù)步(DATA步),第四章,13, 控制語句實現(xiàn)從程序的一部分轉(zhuǎn)移到另一部分的語句,如DO、IF、GO TO、SELEC
7、T、LINK等語句; 信息語句給出關(guān)于數(shù)據(jù)集或正被生成的數(shù)據(jù)集的附加信息,如ARRAY、INFORMAT、FORMAT、LENGHT、ATTRIB、KEEP、DROP等語句.,第四章,14,常用的數(shù)據(jù)步文件管理語句,第四章,15,DATA語句格式,DATA ; DATA view-name / VIEW=view-name ); DATA data-set-name / PGM=program-name ); DATA PGM=program-name (); ; DATA VIEW=view-name (); DESCRIBE;,第四章,16,選項說明,這里只給出常用選項的說明,其它選項說明
8、可以從SAS系統(tǒng)幫助中查找。,第四章,17,例4.1 規(guī)定要創(chuàng)建的SAS數(shù)據(jù)集。 data a; /*創(chuàng)建臨時數(shù)據(jù)集a */ data fdata.capital; /*創(chuàng)建永久數(shù)據(jù)集fdata.capital */ data data1 data2; /*創(chuàng)建兩個臨時數(shù)據(jù)集data1和data2 */ data _null_; /*特殊名,不創(chuàng)建SAS數(shù)據(jù)集,用于輸出 */ data; /*系統(tǒng)自動規(guī)定數(shù)據(jù)集名, data1, ,datan * / 例4.2 數(shù)據(jù)集選項舉例。 data new (drop=var1); /*去掉數(shù)據(jù)集new中變量var1*/ data new (keep=_
9、numeric_); /*保留數(shù)據(jù)集new中所有數(shù)值變量*/ data new (label=股票價格); /*規(guī)定數(shù)據(jù)集new標簽名為”股票價格”*/ data new (rename=(var1=u var2=v); /*將變量var1和var2更名為u和v*/ data book(index=(author); /*數(shù)據(jù)集book對變量author建立索引*/,第四章,18,例4.3 創(chuàng)建DATA步數(shù)據(jù)視窗文件。 data class/ view=class; set fdata.class; run; 例4.4 存貯被編輯程序。 data .class1(keep=name age w
10、eight)/pgm=.cl; /*cl是被存貯的SAS程序*/ set fdata.class; run; 例4.5 用DATA步執(zhí)行一個被存貯的編輯程序。 data pgm=fdata.cl; run;,第四章,19,特殊數(shù)據(jù)集名,_data_ (省略數(shù)據(jù)集名) data _data_; /*等價于語句data;*/ 系統(tǒng)自動為數(shù)據(jù)集賦名:data1, data2, datan.,第四章,20,_null_ 一般和PUT語句一起用。由PUT輸出結(jié)果,只輸出到LOG窗口,不會產(chǎn)生SAS數(shù)據(jù)集。 例4.6 不產(chǎn)生數(shù)據(jù)集。 data _null_; x=exp(5); y=log(10); pu
11、t x= y=; run;,第四章,21,_last_ _last_是SAS系統(tǒng)的一個自動變量,取值為最新創(chuàng)建的SAS數(shù)據(jù)集名。 例4.7 查看最新創(chuàng)建的SAS數(shù)據(jù)集。 data a; set _last_; run;,第四章,22,過程步以PROC語句開始,用于分析處理SAS數(shù) 據(jù)集中的數(shù)據(jù)。 從過程庫中調(diào)出一個過程并執(zhí)行這個過程,以SAS數(shù)據(jù)集作為輸入數(shù)據(jù),PROC語句開始的一組或幾組SAS語句完成一個SAS過程,以另一個“PROC”、“ DATA”或“ RUN”語句結(jié)束. 指定PROC步調(diào)用的SAS程序,選擇項指明分析的 數(shù)據(jù)集,分析結(jié)果的輸出要求,以及分析過程中需 要用到的一些參數(shù).,
12、SAS過程步(PROC步),第四章,23,若干數(shù)據(jù)步和幾個過程步構(gòu)成一個SAS程.SAS程序一般在PGM窗口采用全屏幕編輯方式輸入.當(dāng)程序輸入完畢,檢查修改后就可以 提交給SAS系統(tǒng)執(zhí)行. 在程序執(zhí)行的過程中,日志(LOG)窗口顯示程序執(zhí)行中記錄的信息;它包括執(zhí)行哪個語句;生成的數(shù)據(jù)集中變量個數(shù)及觀測個數(shù)是多少;每一步的時間及出錯信息等等. SAS過程產(chǎn)生的輸出顯示在OUTPUT窗口.,第四章,24,數(shù)據(jù)步程序中的計算由表達式來完成。表達式把運算對象(常數(shù),變量,函數(shù)調(diào)用等)用一系列算符(如特殊的運算符、括號等)連接起來,被執(zhí)行后得到一個目標值. 表達式分為簡單表達式(僅用一個算符)和復(fù)合的表
13、達式(使用多個算符). 在數(shù)據(jù)步為了對變量作變換,建立新變量、條件處理、計算新數(shù)值及指定新數(shù)值時使用表達式來編寫程序語句.,第四章,25,SAS常量主要有數(shù)值型、字符型兩種,并且還提供了用于表達日期、時間的數(shù)據(jù)類型。例如 數(shù)值型:12,7.5,2.5E10 字符型:Beijing,Li Ming,李明 日期型:13JUL1998d 時間型:14:20t 日期時間型:13JUL1998:14:20:32dt 因為SAS是一種數(shù)據(jù)處理語言,而實際數(shù)據(jù)中經(jīng)常會遇到缺失值,比如沒有觀測到數(shù)值,被訪問人不肯回答等等。SAS中用一個單獨的小數(shù)點( .)來表示缺失值常量。,(sasLan11.sas),SA
14、S表達式,第四章,26,SAS變量的基本類型有兩種:數(shù)值型和字符型。日期、時間等變量存為數(shù)值型。 SAS的數(shù)值型變量可以存儲任意整數(shù)、定點實數(shù)、浮點實數(shù),一般不關(guān)心其區(qū)別。數(shù)值型變量在數(shù)據(jù)集中的存貯一般使用8個字節(jié)。 SAS的字符型變量缺省的長度是8個字符,但是如果在INPUT語句中輸入字符型變量時指定了長度則不受此限制。 可以用LENGTH語句直接指定變量長度。 如 LENGTH name $ 20 ;,第四章,27,SAS運算符包括算術(shù)、比較、邏輯等運算符。 算術(shù)運算符為 ,*,/,*,運算優(yōu)先級按通常的優(yōu)先規(guī)則。 比較運算符用于比較常量、變量的值大小、相等,包括 IN EQ NE GT
15、LT GE LE 運算符IN是一個SAS特有的比較運算符,用來檢查某個變量的取值是否在一個給定列表中。 比如 prov in (北京, 上海, 天津, 重慶) 可以判斷變量prov的取值是否為四個直轄市之一。,SAS運算符,第四章,28,邏輯運算符用來連接比較得到的結(jié)果以構(gòu)成復(fù)雜的條件,有三種邏輯運算符: 否則表達式成立(“真”).,第四章,30,在SAS系統(tǒng)9.1版本,SAS函數(shù)分為二十五種類型,它們是算術(shù)函數(shù)、截取函數(shù)、數(shù)學(xué)函數(shù)、概率和密度函數(shù)、分位數(shù)函數(shù)、非中心函數(shù)、樣本統(tǒng)計函數(shù)、隨機數(shù)函數(shù)、財政金融函數(shù)、字符函數(shù)、日期和時間函數(shù)、洲和Zip碼(郵政編碼)換算函數(shù)和特殊函數(shù)等等(在SAS
16、系統(tǒng)6.12版本,SAS函數(shù)分為十七種類型共有178個,SAS系統(tǒng)8.1版本,SAS函數(shù)分為二十二種類型共有319個函數(shù)).,SAS函數(shù),第四章,31,SAS系統(tǒng)提供的SAS函數(shù)比一般高級語言的標準函數(shù)多得多.如此豐富的SAS函數(shù),對用戶編寫SAS程序帶來極大的方便,尤其是概率函數(shù)、分位數(shù)函數(shù)、非中心函數(shù)、樣本統(tǒng)計函數(shù) 、隨機數(shù)函數(shù),這幾類函數(shù)是一般高級計算機語言所沒有的,它們?yōu)榻y(tǒng)計分析計算提供更大的方便。 下面我們分類介紹一些SAS函數(shù),主要介紹用于統(tǒng)計計算的SAS函數(shù).,第四章,32,第四章,33,測試函數(shù)功能的一個簡單的程序:,data _null_; y=sqrt(3); put y=
17、 ; run;,程序提交后將在LOG窗口給出SQRT(3)的結(jié)果為Y=1.7320508076 。,第四章,34,SAS語言作為一種統(tǒng)計計算語言,它提供了多種概率分布的有關(guān)函數(shù)。其中分布密度、概率、累積分布函數(shù)等可以通過幾種統(tǒng)一的格式調(diào)用,格式為,分布函數(shù)值 = CDF(分布, x ); 密度值 = PDF(分布, x ); 概率值 = PMF(分布, x ); 對數(shù)密度值 = LOGPDF(分布, x ); 對數(shù)概率值 = LOGPMF(分布, x );,第四章,35,CDF計算由分布指定的某種分布的分布函數(shù),PDF計算分布密度函數(shù)值,PMF計算離散分布的分布概率,LOGPDF為PDF的自然
18、對數(shù),LOGPMF為PMF的自然對數(shù). 例如,PDF(NORMAL, 1.96) 計算標準正態(tài)分布在1.96處的密度值(0.05844); CDF(NORMAL,1.96) 計算標準正態(tài)分布在1.96處的分布函數(shù)值(0.975) PMF(NORMAL,1.96)=PDF(NORMAL,1.96) 即PMF對連續(xù)型分布即為PDF。 除了用上述統(tǒng)一的格式調(diào)用外,SAS系統(tǒng)還單獨提供了用 于計算常用分布的密度、分布函數(shù)。,第四章,36, PROBNORM(x):計算標準正態(tài)的分布函數(shù). 即計算服從標準正態(tài)分布的隨機變量U小于等于 給定x的概率(PU=x). PROBCHI(x,df,nc):計算自由
19、度為df,非中心 參數(shù)為nc的卡方分布的分布函數(shù).如果nc沒有規(guī)定 或取為0,那么被計算的就是中心卡方分布.自由度 df允許不是整數(shù).例如: p=1-probchi(31.264,11); 的結(jié)果為1-0.999=0.001.,第四章,37,PROBGAM(x,a):計算形狀參數(shù)a(a0)的伽馬 分布的分布函數(shù).例如: p=probgam(7.5,5.2);的結(jié)果為0.84885. PROBBETA(x,a,b):計算貝塔分布的分布函數(shù) (其中:,,).例如: p=probbeta(0.75,4,2.5);的結(jié)果為0.7467. PROBF(x,ndf,ddf,nc):計算F分布函數(shù)(其中nd
20、f 為分子自由度,ddf為分母自由度,nc是非中心參數(shù)).當(dāng) 分布是中心F分布時,取nc=0或不規(guī)定這項自變量.自 由度可以是非整數(shù).例如: p=1probf(3.32,2,30);的結(jié)果是0.04983.,第四章,38, PROBT(x,df,nc):計算t分布分布函數(shù)(其中df為自 由度,nc為非中心參數(shù)).若參數(shù)nc沒有規(guī)定或取為0,那 么被計算的就是中心t分布.自由度df允許非整數(shù). PROBBNML(p,n,m)(0p1,n1,0mn):計 算二項分布的概率分布函數(shù). POISSON(lambda,n)(其中 lambda,n): 計算柏松分布的概率分布函數(shù). PROBNEGB(p,
21、n,m)(其中0p1,n0,m0): 計算負二項分布的概率分布函數(shù).,第四章,39, PROBHYPR(nn,k,n,x,r)(其中nn1,0knn, 0nnn,max(0,k+nnn)xmin(k,n) ):計算 超幾何分布的概率分布函數(shù). 設(shè)nn個產(chǎn)品中有K個不合格品,抽取n個樣品, 其中不合格品數(shù)小于等于x的概率為此函數(shù)值。可 選參數(shù)r是不勻率,缺省為1,r代表抽到不合格品 的概率是抽到合格品概率的多少倍。 PROBBNRM(x,y,r) 標準二元正態(tài)分布的分布 函數(shù),r為相關(guān)系數(shù)。,(sasLan13.sas),第四章,40,設(shè)連續(xù)型隨機變量X的分布函數(shù)為F(x),對給定的p (0p1
22、),若有xp使得F(xp)=p,則稱xp為隨機變量X 的分位數(shù)(或稱分布F(x)的p分位數(shù)).SAS系統(tǒng)提供 計算六種常見連續(xù)分布分位數(shù)的函數(shù). CINV(p,df,nc)(其中 0p1,自由度df0,非 中心參數(shù)nc0)計算卡方分布的分位數(shù).例如: data; q1=cinv(0.95,3);put q1=q1; q2=cinv(0.95,3.5,4.5);put q2=; run; 結(jié)果是q1=7.8147,q2=17.505 (在LOG窗口顯示).,第四章,41, BETAINV(p,a,b)(其中:0p1,a0,b0): 計算貝塔分布的分位數(shù).例如: x=betainv(0.001,2
23、,4);的結(jié)果為0.0101. FINV(p,ndf,ddf,nc)(其中 0p1,分子自由度 ndf0,分母自由度ddf0,非中心參數(shù)nc0): 計算F分布的分位數(shù).例如以下DATA步計算的 結(jié)果為 q1=4.1028,q2=7.5838. data _null; q1=finv(0.95,2,10); put q1=; q2=finv(0.95,2,10,3.2); put q2=; run;,第四章,42,TINV(p,df,nc)(其中0p1,自由度df0 ): 計算t分布的分位數(shù).若nc沒有規(guī)定或取nc=0,計算 的是中心t分布的分位數(shù).若nc的絕對值很大,使用的算 法可能失敗.這種
24、情況函數(shù)得到一個缺失值. PROBIT(p)(0p1):計算標準正態(tài)分布的分位 數(shù).是概率函數(shù)PROBNORM的逆函數(shù).如果隨機變量 XN(0,1),則 PXprobit(z)=z,這個函數(shù)產(chǎn)生的 結(jié)果在5和5之間. GAMINV(p,a)(其中:0p1,a0):計算伽馬分布 的分位數(shù).例如:x=gaminv(0.75,3.5);的結(jié)果為4.51857.,第四章,43,設(shè)有一組觀測數(shù)據(jù):x1,x2,xn(存放在變量X1 Xn或X、Y、中).SAS系統(tǒng)為我們提供一類函數(shù)(共 15個),用于計算這組樣本值的有關(guān)統(tǒng)計量.這類函數(shù) 要求自變量是數(shù)值.它們是: (1)均值:MEAN(of x1-xn)或
25、MEAN(x,y,z,).例如 x=mean(2,6);結(jié)果為4. x=mean(1,2,3,2); 結(jié)果為2. (2)最大值:MAX(of x1-xn)或 MAX(x,y,). (3)最小值:MIN(of x1-xn)或 MIN(x,y,).,樣本統(tǒng)計函數(shù),第四章,44,(4) 非缺失數(shù)據(jù)的個數(shù): N(of x1-xn)或 N(x,y,). (5) 缺失數(shù)據(jù)的個數(shù): NMISS(of x1-xn) 或 NMISS(x1,x2,). (6)求和:SUM(of x1-xn) 或 SUM(x1,x2,). (7)方差:VAR(of x1-xn) 或 VAR(x1,x2,). (8)標準差:STD(
26、of x1-xn)或 STD(x1,x2,). 例如 x=std(2,6);和x=std(2,6); 的結(jié)果都是2.828427. x=std(2,4,6,3,1);的結(jié)果為1.923538.,第四章,45,(9)標準誤:STDERR(of x1-xn)或STDERR(x1,x2,). 例如: x=stderr(2,6,3,4);或 x=stderr(2,6,3,4,);的結(jié)果都是0.8539126。 (10) 變異系數(shù):CV(of x1-xn)或 CV(x1,x2,). (11) 極差:RANGE(of x1-xn)或RANGE(x1,x2,). (12)偏差平方和(校正平方和): CSS(
27、of x1-xn)或 CSS(x1,x2,). 該函數(shù)計算非缺失自變量關(guān)于均值的偏差平方和. (13) 未校正的平方和: USS(of x1-xn) 或 USS(x1,x2,). 該函數(shù)計算非缺失自變量的(未校正)平方和.,第四章,46,(14)偏度: SKEWNESS(of x1-xn)或SKEWNESS(x1,x2,). 該函數(shù)計算非缺失自變量的偏斜度. (15) 峰度: KURTOSIS(of x1-xn)或KURTOSIS(x1,x2,). 該函數(shù)產(chǎn)生非缺失自變量的峰度統(tǒng)計量.它要求至 少有4個非缺失自變量. ORDINAL(k,x1,x2,xn)返回數(shù)值列表x1, x2,xn中第k小
28、的值. (saslan10.sas),第四章,47,設(shè)隨機變量的分布函數(shù)為F(x),稱隨機變量的 抽樣序列1,2,為F(x)分布隨機數(shù).產(chǎn)生 各種常用分布的隨機數(shù)是隨機模擬方法的基礎(chǔ).SAS 系統(tǒng)提供產(chǎn)生11種常見分布隨機數(shù)的函數(shù). 均勻分布隨機數(shù)函數(shù): UNIFORM(seed)和RANUNI(seed). 標準正態(tài)分布隨機數(shù)函數(shù): NORMAL(seed)和RANNOR(seed).,隨機數(shù)函數(shù),第四章,48,利用這個函數(shù)經(jīng)變換還可以得到一般正態(tài)分布隨機數(shù)及對數(shù)正態(tài)隨機數(shù).例如記 X=M+sqrt(SQ)rannor(seed) Y=exp(M+sqrt(SQ)rannor(seed)=e
29、xp(X) 那么X是均值為M、方差為SQ的正態(tài)隨機變量; Y是對數(shù)正態(tài)變量,均值為exp(M+SQ/2),方差為 exp(2M+SQ)*(exp(SQ)1). 指數(shù)分布隨機數(shù)函數(shù):RANEXP(seed). 伽馬分布隨機數(shù)函數(shù): RANGAM(seed,alpha) (其中 alpha0).,第四章,49, 三角分布隨機數(shù)函數(shù): RANTRI(seed,h)(其中0h1). 柯西分布隨機數(shù)函數(shù):RANCAU(seed). 二項分布隨機數(shù)函數(shù): RANBIN(seed,n,p)(其中n0為整數(shù),0p1). 泊松分布隨機數(shù)函數(shù): RANPOI(seed,lambda) (其中l(wèi)ambda0 ).
30、離散分布隨機數(shù)函數(shù): RANTBL(seed,p1,pi,pn) (其中0pi1(,),pi=1),第四章,50,CEIL(x)-取自變量x的最小整數(shù).CEIL(4.5)=5. FLOOR(x)-取自變量x的最大整數(shù).Floor(4.5)=4. INT(x)-取x的整數(shù)部分.如INT(4.5)=4. ABS(x)-求x的絕對值. MOD(x,y)-求x除以y的余數(shù). SQRT(x)-求x的平方根. DIGAMMA(x)-對自變量x計算GAMMA函數(shù)對數(shù)的 導(dǎo)數(shù). GAMMA(x)-對自變量x計算完全GAMMA函數(shù).,其他函數(shù),第四章,51,LOG(x)-對自變量x求以e為底的自然對數(shù). LOG
31、2(x)-對自變量x求以2為底的對數(shù). LOG10(x)-對自變量x求以10為底的對數(shù). ERF(x)-計算誤差函數(shù). EXP(x)-計算e的x次冪.EXP(x)=ex. SIN(x),COS(x),TAN(x)-求x的正弦,余弦和正切. SINH(x),COSH(x),TANH(x)-求雙曲正弦,余弦和正切 UPCASE(s)-把字符串s轉(zhuǎn)化為大寫字母。 LOWCASE(s)-把字符串s轉(zhuǎn)化為小寫字母。 SUBSTR(s,p,n)-從字串s中第p個字符開始取n個字符的子串連,第四章,52,LAGn(x)返回該自變量x前n條觀測(記錄)中該變 量的值. DIFn(x)得到該自變量x的值減去前n
32、條觀測(記錄) 中該變量的值. 例如數(shù)據(jù)集AIR:,date air JAN49 112 FEB49 118 MAR49 132 DEC49 118 JAN50 115 FEB50 126 MAR50 141 . ,第四章,53,(1)計算每月乘客數(shù)較上月增加的百分數(shù); (2)計算逐月乘客數(shù)較去年同期增加的百分數(shù),Data lagdif; set dst.air_2; pct1=dif(air)/lag(air); pct2=dif12(air)/lag12(air); run; Proc print data=Lagdif; id date; var air pct1 pct2; Run;,
33、(sasLan14.sas),第四章,54,第四章,55,SAS日期常數(shù)和函數(shù),日期時間直接作為數(shù)字型常數(shù): ddMMMyy D(例如 : 12JAN96d ) 日期操的函數(shù): DATE()取今天的日期作為SAS日期值, TODAY()-取當(dāng)日的日期作為SAS日期值, DATETIME()-取當(dāng)日的日期和時間作為SAS日期時間值, TIME()-取今天的時間作為SAS時間值, HOUR(time | datetime)由SAS的時間或日期時間得到小時, MINUTE(time | datetime)-由SAS的時間或日期時間得到分鐘, SECOND(time | datetime)-由SAS的
34、時間或日期時間得到秒鐘,第四章,56,YEAR(date)-由SAS日期date得到年, MONTH(date)-由SAS日期date得到月, DAY(date)-由SAS日期date得到日, WEEKDAY(date)-由SAS日期date得到星期幾(周日) QTR(date)-由SAS日期date得到季度值, MDY(month,day,year)-生成year年month月day日的日期值, HMS(hour,minute,second)-由小時hour,分鐘minute,秒second生成時間值, DHMS(date,hour,minute,second)-生成日期時間值, DATEP
35、ART (datetime)-取SAS日期時時間值datetime的日期部分,,(sasLan15.sas),第四章,57,INTNX(interval,from,n)-計算從from開始經(jīng)過n個間隔后的SAS日期。其中interval可以取YEAR、QTR、MONTH、WEEK、DAY等。比如, INTNX(MONTH, 16Dec1997d,3) 結(jié)果為1998年3月1日。注意它總是返回一個周期的開始值。 INTCK(interval,from,to)-計算從日期from到日期to中間經(jīng)過的interval間隔的個數(shù),其中interval取MONTH等.比如, INTCK(YEAR, 31
36、Dec1996d, 1Jan1998d) 計算1996年12月31日到1998年1月1日經(jīng)過的年間隔的個數(shù), 結(jié)果得2,盡管這兩個日期之間實際只隔1年。,第四章,58,練習(xí)題,1. 計算標準正態(tài)分布在x=-3,-2,-1, 0, 1,2,3 時的分布函數(shù)F(x)和密度函數(shù)(x)的值; 2. 設(shè)隨機變量t(n),計算t分布的分位數(shù) tp(n),其中n=1,5,10,20; p=0.10,0.90, 0.95, 0.975; 3. 當(dāng)日期值date=14JUL2010d時,試問這一天是星期幾?,第四章,59,數(shù)據(jù)步入門,SAS語言是一種專用的數(shù)據(jù)管理、分析語言,它提供了很強的數(shù)據(jù)操作能力。這些數(shù)據(jù)
37、操作能力表現(xiàn)在它可以容易地讀入任意復(fù)雜格式的輸入數(shù)據(jù),并可以對輸入的數(shù)據(jù)進行計算、子集選擇、更新、合并、拆分等操作。另外,SAS系統(tǒng)還提供了用來訪問其它數(shù)據(jù)庫系統(tǒng)如Sybase、Oracle的接口,訪問各種微機使用的數(shù)據(jù)庫文件,如FoxPro、Excel的接口及向?qū)?,并提供了一個SQL過程來實現(xiàn)數(shù)據(jù)庫查詢語言SQL的功能。 SAS語言直接、間接用于數(shù)據(jù)管理的語句很多,本章只能介紹最常用的一些語句。,第四章,60,SAS語言的編程計算功能主要在數(shù)據(jù)步實現(xiàn)。一個 SAS數(shù)據(jù)步相當(dāng)于一個單獨運行的程序。但是,SAS語言又是一個專用數(shù)據(jù)處理語言,所以SAS數(shù)據(jù)步有其它語言所沒有的特點。我們以下面的簡單
38、例子說明這一點:,data a; put x= y= z= ; input x y ; z=x+y; put x= y= z= ; cards; 10 20 100 200 ; run; (sasLan21.sas),第四章,61, X=. Y=. Z=. X=10 Y=20 Z=30 X=. Y=. Z=. X=100 Y=200 Z=300 X=. Y=. Z=. NOTE: The data set WORK.A has 2 observations and 3 variables.,運行后在LOG窗口顯示如下記錄:,這個程序的運行流程是這樣的: DATA語句標志了數(shù)據(jù)步開始,并指定了數(shù)
39、據(jù)步結(jié)束時要生成的數(shù)據(jù)集名字為A(實際是WORK.A),第四章,62,第一個PUT語句要輸出變量X、Y、Z的值,但它們還都沒有定義,所以LOG窗口的結(jié)果顯示為三個缺失值. 下面是INPUT語句,它從CARDS語句后面的數(shù)據(jù)行中讀取變量X的值10,變量Y的值20。 下一個賦值語句計算變量Z的值得到30。因此,LOG窗口中的第二行輸出顯示三個變量的值分別為10、20、30。 從CARDS語句開始到空語句(;)的各行是非執(zhí)行的,程序運行到RUN語句,發(fā)現(xiàn)這是本數(shù)據(jù)步的最后一個語句,按一般的程序語言的規(guī)則,程序到這里就應(yīng)該結(jié)束了,程序中的第二行數(shù)據(jù)100 200就不能被讀入.,第四章,63,但SAS是
40、一個專用的數(shù)據(jù)處理語言,所以,這個程序運行到RUN語句后,先把讀入的觀測(這是第一個觀測)寫入輸出數(shù)據(jù)集;并繼續(xù)執(zhí)行下面步驟。 又返回到DATA語句后的第一個可執(zhí)行語句開始執(zhí)行,并先把所有的變量置初值為缺失值.于是,第一個PUT語句的結(jié)果顯示三個變量均為缺失值,而不是上一步的10、20、30。 下一個INPUT語句從數(shù)據(jù)行中讀入下一個觀測,把變量X、Y賦值100、200。讀取位置由運行時設(shè)置的一個數(shù)據(jù)指針指示。然后計算變量Z的值得300。 于是PUT語句輸出的X、Y、Z值分別為100、200、300。,第四章,64,然后,運行控制跳過CARDS語句到空語句,到數(shù)據(jù)步結(jié)尾,把第二個觀測輸出到數(shù)據(jù)
41、集, 再返回到數(shù)據(jù)步開頭,把變量值賦初值為缺失值,所以第一個PUT語句輸出的三個變量值為缺失值。 然后運行到INPUT語句,應(yīng)該讀入下一個觀測,但是查詢數(shù)據(jù)指針發(fā)現(xiàn)已經(jīng)讀完了所有數(shù)據(jù),所以本數(shù)據(jù)步結(jié)束,并把兩個觀測寫入數(shù)據(jù)集WORK.A中。,提交 PROC PRINT; RUN;,顯示此數(shù)據(jù)集的內(nèi)容如下:,OBS X Y Z 1 10 20 30 2 100 200 300,第四章,65,從這個例子可以看出SAS數(shù)據(jù)步程序和普通程序的一個重大區(qū)別:SAS數(shù)據(jù)步如果有數(shù)據(jù)輸入,比如用INPUT、SET、MERGE、UPDATE、MODIFY等語句讀入數(shù)據(jù),則數(shù)據(jù)步中隱含了一個循環(huán),即數(shù)據(jù)步程序執(zhí)
42、行到最后一個語句后,會返回到數(shù)據(jù)步內(nèi)的第一個可執(zhí)行語句開始繼續(xù)執(zhí)行,直到讀入數(shù)據(jù)語句(INPUT、SET、MERGE、UPDATE、MODIFY等)讀入了數(shù)據(jù)結(jié)束標志為止才停止執(zhí)行數(shù)據(jù)步,并把讀入的各個觀測寫入在DATA語句中指定的數(shù)據(jù)集內(nèi)。如果沒有數(shù)據(jù)輸入而只是直接計算,則數(shù)據(jù)步程序不需要此隱含循環(huán)。數(shù)據(jù)步因為有這樣一個隱含循環(huán),所以也提供了用來查詢某一步是第幾次循環(huán)的特殊變量_N_,它的值為數(shù)據(jù)步循環(huán)計數(shù)值。,第四章,66,數(shù) 據(jù) 步 流 程 圖,第四章,67,創(chuàng)建SAS數(shù)據(jù)集,使用SAS系統(tǒng)分析處理數(shù)據(jù),或者使用SAS過程分析數(shù)據(jù)之前,首先必須將這些數(shù)據(jù)轉(zhuǎn)化為SAS數(shù)據(jù)集. 用數(shù)據(jù)步輸入
43、數(shù)據(jù)可以直接輸入;由文本文件讀入;也可從已經(jīng)形成的SAS數(shù)據(jù)集用許多不同的方法,根據(jù)需要整理后生成新數(shù)據(jù)集;然后使用一些SAS過程進行分析處理.,第四章,68,在DATA步直接輸入數(shù)據(jù)的一般形式:,DATA SAS-data-set ; 變量屬性設(shè)定語句; INPUT 語句; 其它語句; CARDS; 數(shù)據(jù)行; RUN;,data da1; input x y z; sum=x+y+z; cards; 1 3.1 5 3 2.3 7 6 3.4 6 ; run;,在DATA步直接輸入數(shù)據(jù)的 例子,直接輸入數(shù)據(jù)創(chuàng)建SAS數(shù)據(jù)集,第四章,69,對于小量的數(shù)據(jù),用CARDS語句和空語句把數(shù)據(jù)行夾在中
44、間放在數(shù)據(jù)步程序中就可以用INPUT 語句輸入數(shù)據(jù)。如果數(shù)據(jù)量很大,直接把數(shù)據(jù)放在程序中不利于程序和數(shù)據(jù)的維護。這時,一種辦法是把原始數(shù)據(jù)放在一個普通的文本格式的文件中,然后用INFILE語句指定輸入文件名。 例如,我們可以把上例中的數(shù)據(jù)行單獨創(chuàng)建一個文本文件f1.txt,假設(shè)存放在了C:中,可以用如下程序讀入文件中的數(shù)據(jù)并創(chuàng)建數(shù)據(jù)集。,第四章,70,在DATA步由文本數(shù)據(jù)文件創(chuàng)建SAS數(shù)據(jù)集的一般格式:,DATA SAS-data-set ; 變量屬性設(shè)定語句; INFILE filename ; INPUT 語句; 其它語句; RUN;,data da2; infile c:f1.txt;
45、 input x y z; mean=(x+y+z)/3; run;,在DATA步由文本數(shù)據(jù)文件 創(chuàng)建SAS數(shù)據(jù)集的例子:,文本數(shù)據(jù)文件f1.txt的內(nèi)容: 3.1 5 3 2.3 7 6 3.4 6,由文本數(shù)據(jù)文件創(chuàng)建SAS數(shù)據(jù)集,第四章,71,注意:INFILE語句要寫在INPUT語句之前,使用INFILE語句就不再使用CARDS語句和空語句。 關(guān)鍵詞INFILE 后面跟的是一個包含文件名的字符串,可以使用全路徑名,如果只有文件名則在當(dāng)前工作目錄尋找。 在infile語句中可規(guī)定不同的分隔符,比如 DLM=,第四章,72,INFILE filename ; Options(選項): (1)
46、 DLM=, delimiter=ab規(guī)定分隔符; (2) FIRSTOBS=n1 OBS=n2讀入源數(shù)據(jù)文件中的第n1行至n2行. 若只規(guī)定一項,另一項表示第一行或最后一行。 (3) DATALINES規(guī)定直接從數(shù)據(jù)行讀入數(shù)據(jù).這時用DATALINES語句替代CARDS語句。,INFILE語句,第四章,73,例如:,data tem; infile datalines; input date $1-7 dest $8-10 num 11-13; datalines; 01MAR90LON198 02MAR90FRA207 03MAR90LON205 ; run; proc print; ru
47、n; (sasLan31.sas),第四章,74,SAS還可以讀入其它格式的文件,比如FoxPro、Excel等微機格式數(shù)據(jù)文件。可以使用SAS系統(tǒng)File菜單中的Import命令完成。 SAS提供了兩種辦法可以訪問大型數(shù)據(jù)庫。SAS/ ACCESS可以直接連接Oracle、Sybase 、SQL Server等大型數(shù)據(jù)庫。為了訪問儲存在這些數(shù)據(jù)庫中的表,需要對數(shù)據(jù)庫中的表在SAS中建立訪問描述文件(access descriptor),和視圖描述文件(view descriptor)。,由其它文件創(chuàng)建SAS數(shù)據(jù)集,第四章,75,INPUT語句,INPUT語句的用途: 讀入外部數(shù)據(jù)文件中的數(shù)據(jù)
48、; 讀入CARDS語句后面的數(shù)據(jù)。 語句格式 INPUT語句中描述一個記錄值的五種方式: 簡單方式; 列方式Column; 格式化方式Formatted; 列表方式List; 命名方式Named.,第四章,76,設(shè)定的格式: List: 變量名 Colunm: 變量名 始列-終列 Formatted: 指針 變量名 輸入格式指針:n或+n Named: 變量名= 始列-終列 輸入換行控制::不換行等待下一個Input語句; : 形成輸出記錄時輸入也不換行.當(dāng)一數(shù)據(jù)行 含有多個觀測時用雙尾符控制.,INPUT ;,第四章,77,簡單方式: INPUT ; 列方式: INPUT variable
49、start-column ; 格式化方式: INPUT variable informat. ; INPUT (variable-list) (informat-list) ; INPUT (variable-list) ( informat.); 列表方式: INPUT variable ; INPUT variable ; 命名方式: INPUT variable= ; INPUT variable= start-column ; INPUT variable=informat. ;,第四章,78,選項說明,第四章,79,(1)INPUT 語句- List格式(自由格式),INPUT 變量
50、名 變量名 . . . ;,CARDS語句后的數(shù)據(jù)行或源數(shù)據(jù)文件中的記錄數(shù)據(jù)間至少有一個空格或特定字符分隔; 數(shù)據(jù)行的數(shù)據(jù)只能按順序輸入; 無論是字符型或數(shù)值型缺失值必須用點(.)表示; 字符變量的值不能含有空格,長度一般不超過個字符,開頭和結(jié)尾的空格將被忽略。,第四章,80,data list ; iuput name $ sex $ height weight; cards ; 王永成 男 176 65 李宏志 男 181 78 賀佳 女 162 54 ; (sasLan32.sas),優(yōu)點:使用簡單;輸入數(shù)據(jù)時不必上下對齊;不需要知道每個變量的具體列數(shù)而只需知道它的次序。,List格式(
51、自由格式) :,此例中數(shù)據(jù)有3個觀測,四個變量,每行數(shù)據(jù)的各變量值之間用空格分隔.為輸入這些數(shù)據(jù),INPUT語句中依次列出了四個變量名,并在字符型變量NAME和SEX后加了$符。這是最簡單的生成數(shù)據(jù)集的SAS程序(DATA步)。,第四章,81,(2)INPUT 語句 Column(列)格式,INPUT 變量名 始列-終列 變量名 始列-終列. . . ;,CARDS語句后的數(shù)據(jù)行或源數(shù)據(jù)文件中各變量所在位置必須是有規(guī)則的,即數(shù)據(jù)行各項上下對齊 ;各數(shù)值之間可以沒有任何分隔,連續(xù)寫在一起;每個變量按指定的始列-終列讀入; 字符變量的長度不受缺省值的限制(但=200); 變量值可含空格,變量輸入次
52、序可以是任意的,任何字段或某部分可重復(fù)讀入。 不論字符型變量還是數(shù)值型變量如果指定列位置都是空白則輸入值為缺失值。小數(shù)點仍表示數(shù)值型和字符型變量的缺失。,第四章,82,data col1 ; iuput name $1-6 sex $8-9 height 11-13 weight 15-16 ; cards ; 王永成 男 176 65 李宏志 男 181 78 賀 佳 女 162 54 ; (sasLan33.sas),列方式不要求數(shù)據(jù)項之間分開,所以經(jīng)常用來輸入緊縮格式的數(shù)據(jù)。比如,數(shù)據(jù)行為一批身份證號碼,但只須讀入其中的出生年、月、日信息,就可以用例2。,data col2; input
53、 year 7-8 mon 9-10 day 11-12; cards; 110103751209223 110101690215005 ;,例2:,(sasLan34.sas),例1:,第四章,83,data listcol ; iuput name $ 1-6 sex $ height weight ; cards; 王永成 男 176 65 李宏志 男 181 78 賀 佳 女 162 54 ;,或 iuput name $1-6 sex $8-9 height Weight ; 或 iuput name $1-6 sex $ height 11-13 Weight ;,列格式與自由格式
54、混用:,(sasLan35.sas),第四章,84,(3)INPUT 語句 Formatted格式,INPUT 指針 變量名 輸入格式 指針 變量名 輸入格式. . . ;,指針:n或+n,CARDS語句后的數(shù)據(jù)或源數(shù)據(jù)文件中各變量所在位置必須是有規(guī)則的; 每個變量按輸入格式讀入指定的長度; 可用指針控制下一個變量讀入的始點; 變量值可含空格(包括頭尾空格、小數(shù)點); 變量輸入次序可以是任意的,任何字段或起部分可重復(fù)讀入.,第四章,85,data format ; iuput name $6. sex $3. height 4. weight 3. ; cards; 王永成 男 176 65
55、李宏志 男 181 78 賀 佳 女 162 54 ;,或 iuput name $6. 8 sex $2. +1 height : 3. Weight : 2.; 或 iuput 8 sex $2. 1 name $6. 15 weight 2. 11 height 3. ;,Formatted格式(格式方式)輸入:,(sasLan36.sas),第四章,86,如果需要完全原樣地輸入字符型數(shù)據(jù)(包括頭尾空格、單獨的小數(shù)點),可以用有格式輸入,即在字符型變量名和$符后加上一個輸入格式如CHAR10.表示讀入10個字符。,有特殊格式的數(shù)據(jù)需要用有格式輸入,即在變量名后加格式名。其中最常見的是用來
56、輸入日期。數(shù)據(jù)中日期的寫法經(jīng)常是多種多樣的,比如1998年10月9日可以寫成“1998-10-9 ”,“19981009”,“9/10/98”等等,為讀入這樣的日期數(shù)據(jù)就需要為它指定特殊的日期輸入格式。另外,日期數(shù)據(jù)在SAS中是按數(shù)值存儲的,所以如果要顯示日期值,也需要為它指定特殊的日期輸出格式。,第四章,87,data for1; input date yymmdd8. Sales; format date yymmdd10.; cards ; 56-6-13 1100 67.12.15 1200 78 10 2 1300 891001 1400 19960101 1500 20020901
57、 1600 ; proc print ; run ; (sasLan37.sas),1 1956-06-13 1100 2 1967-12-15 1200 3 1978-10-02 1300 4 1989-10-01 1400 5 1996-01-01 1500 6 2002-09-01 1600,輸出結(jié)果,第四章,88,以上例子程序中數(shù)據(jù)行的日期數(shù)據(jù)占據(jù)8列位置,如果不滿8列要用空格補充,不能讓后面的數(shù)據(jù)進入這8列。 此例可以輸入年、月、日之間用減號、小數(shù)點、空格分隔的日期,可以輸入YYMMDD格式的六位數(shù)的日期(一位數(shù)的月、日前面補0)。FORMAT語句規(guī)定輸出日期變量時使用的顯示格式Y(jié)Y
58、MMDD10. 。,第四章,89,如果日期變量不是第一個,則它的前一項最好使用列格式并且指定結(jié)束列號為日期值的前一列,或者前一項也使用指定輸入格式的輸入方法,并且使前一項的輸入域?qū)捳紳M日期前的列。如果用自由格式則當(dāng)前一項與日期數(shù)據(jù)之間間隔超過一個空格時有可能導(dǎo)致日期讀入時對不準位置。如果數(shù)據(jù)是按列對齊的,還可以在日期變量前加上“開始列號”說明日期變量開始讀取的位置。,data for2; input sales 12 date yymmdd10.; format date yymmdd10.; put date=; cards; 1100 56-6-13 1200 67.12.15 ; run;(sasLan38.sas),例3:,第四章,90,data forcol ; iuput name $6. sex $ 8-9 height 11-13 weight :2. ; cards; 王永成 男 176 65 李宏志 男 181 78 賀 佳 女 162 54 ;,或 iuput name $1-6 8 se
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025寧波市甬北糧食收儲有限公司公開招聘工作人員2人筆試參考題庫及答案解析
- 2026年山西經(jīng)貿(mào)職業(yè)技術(shù)學(xué)院單招試題及答案1套
- 2026廣東陽江市陽春市高校畢業(yè)生就業(yè)見習(xí)招募(第一期)筆試模擬試題及答案解析
- 2026年消防干部心理考試題庫及答案參考
- 2026年浙江機電職業(yè)技術(shù)學(xué)院單招職業(yè)傾向性測試模擬測試卷附答案
- 2026年河北能源職業(yè)技術(shù)學(xué)院單招綜合素質(zhì)考試題庫附答案
- 2026年山西鐵道職業(yè)技術(shù)學(xué)院單招職業(yè)傾向性測試題庫及答案1套
- 2026山西晉城市高平市選聘廉潔征兵監(jiān)督員筆試備考題庫及答案解析
- 2025廣東云浮市招聘醫(yī)療衛(wèi)生人才8人(江蘇地區(qū)高校專場)(公共基礎(chǔ)知識)綜合能力測試題附答案
- 2026四川德陽市廣漢市廣電文化傳媒有限責(zé)任公司招聘6人筆試模擬試題及答案解析
- 2025學(xué)年上海市七年級語文上冊作文題目匯編及解析
- 2026年河南經(jīng)貿(mào)職業(yè)學(xué)院單招職業(yè)技能測試題庫及參考答案詳解
- ai寫作與公文寫作培訓(xùn)課件
- 欄桿安裝施工方案示例
- JJF 2333-2025 恒溫金屬浴校準規(guī)范
- 網(wǎng)約配送員培訓(xùn)
- 2025年水工金屬結(jié)構(gòu)行業(yè)分析報告及未來發(fā)展趨勢預(yù)測
- 軟件產(chǎn)品項目管理方案
- 文書模板-生產(chǎn)環(huán)節(jié)的大氣、水體、固體以及噪聲排放污染等符合相關(guān)標準的情況說明
- 財務(wù)共享服務(wù)2025年發(fā)展趨勢與挑戰(zhàn)研究報告
- 小兒腦癱作業(yè)療法家庭指導(dǎo)
評論
0/150
提交評論