999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

使用SAS軟件及PIPE功能批量處理數據方法研究

2023-11-07 11:35:56張佳佳
電腦知識與技術 2023年26期
關鍵詞:程序用戶

張佳佳

(對外經濟貿易大學統計學院,北京 100029)

0 引言

有一批數據文件要被分析,已知文件地址和類型[1-2],可以使用PROC IMPORT 或者在DATA 步中使用INFILE 語句來讀入這些數據文件,但必須逐個讀入,即使用宏語句批量讀入也必須知道文件名[3-4]。但SAS 也提供了其他工具來完成以上工作。例如PIPE是兩個進程之間的通信通道,可以通過專門的應用程序向SAS 會話提供信息。X 語句可以在不關閉當前SAS 進程的情況下提交DOS 命令,且可以在DATA 步之外運行。在SAS的傳統應用場景中,先將數據手動輸入Excel 或TXT 等文件中,然后傳輸、導入、分析以及輸出[5-6]。但是,這樣處理很難滿足及時性的要求,且人工處理過程也很難避免出錯[7-8]。本研究根據實際使用場景需求,基于PIPE 和X 語句的功能特點,提供了一種新的思路對數據文件進行處理。

1 PIPE的應用

SAS 是一種在學術界和工業界有巨大使用人群的分析工具,使用者常用它來處理分析數據、建立模型、質量管理及決策支援,甚至用于地理信息系統。SAS 提供了多種工具幫助使用者處理文件或者與外部應用進行溝通。這是因為在真實研究中,我們面臨的往往是多個數據來源、多個數據平臺甚至多種數據類型,但是不需要每次都開發一套新的程序來滿足不同數據的需求,SAS 提供了多樣化的工具來實現這一功能。多年來,SAS 一直致力于簡化與基本操作系統的接口提供函數、語句和其他元素,這是為了使用戶不需要知道使用什么命令或如何使用,從而可以方便地把代碼從一個平臺移植到另一個。

PIPE是指在SAS中建立一種信息傳輸的管道,用于建立兩種應用的連接。程序員常常使用這種功能在SAS程序中對外部的某個或某些文件進行操作,然后繼續進行SAS 程序的運行,不需要停止SAS 程序。PIPE 有兩種形式,即:Unnamed PIPE 和Named PIPE。后者主要處理SAS和其他軟件間的信息交流,前者可以用來調用外部代碼或在不創建中間文件情況下更改輸入、輸出、報錯等信息。本文僅討論第二種,如果對第一種形式的PIPE應用感興趣可以參考SAS documentation。

以具體應用場景為例,如圖1 所示,D: est_result中有一些Excel 文件,文件名未知,可以使用PIPE 功能得到該文件夾下所有的文件名。

首先使用filename語句建立pipe,如下:

filename rc pipe"dir D: est_result*.xlsx/b/s";

圖1 文件夾中的Excel文件

接著在DATA 步中使用infile 語句讀取目標文件夾中的文件信息,然后使用變量res_file存放到數據集中,結果如圖2所示。

圖2 DATA步讀取文件名結果

在第一行代碼中,我們建立了一個管道,也就是PIPE,將目標文件夾與SAS連接,只讀取其中的XLSX文件。Filename 語句可以定義一個名字,用這個名字代替一個物理地址(當然也可以用宏變量),在接下來的語句中可以使用這個名字代表的物理地址,讀取其中的文件。其中,dir是DOS命令,可以查看某目錄下的文件,還可以查看文件的信息。*.xlsx 使用了一個通配符,它可以代表所有的xlsx文件。s都是dir命令的參數, 只顯示文件名,s 顯示指定或當前目錄下的所有文件。

PIPE 與SAS 宏的聯用可以更加方便地處理數據文件。在上例中,我們得到了一個數據集,這個數據集中存放了所有將要處理的數據文件的名字,在下面的語句中可以將文件名賦值給一個宏變量。

把剛才兩個功能結合起來,可以實現在一個DATA 步中得到所有待處理文件的文件名,接著在PROC 步中讀取文件,結果如圖3 所示。如果對這些待處理文件的處理方式是統一的,在后續的步驟中進行逐個處理即可,不過要在前兩個步驟之間將每一個文件名都賦值給一個單獨的宏變量。如果在宏語句中使用一個循環,則可以不必逐個將文件名賦值給宏變量。

將以上步驟嵌入宏程序運行結果,如圖4所示。

圖4 使用宏程序讀入全部Excel文件

可以發現,不需要得到文件名,只需要知道文件存儲的位置和文件的格式即可讀取文件內容,即在一個SAS程序中可以對一批文件進行同樣處理。SAS不僅可以使用DOC命令,也可以使用Unix命令,這取決于SAS安裝的機器本身的操作系統。

2 X語句

如果要在一個SAS對話中執行DOS命令,可以使用X 語句。X 語句就是以X 開頭的SAS 語句,本質上是打開了CMD,然后打開應用或者對文件夾進行一定操作,也可以在SAS窗口環境中使用X命令。兩者之間的主要區別是X 語句像任何SAS 語句一樣提交。但是,X命令是作為窗口環境命令發出的。本節在示例中使用X語句,但是,這些信息也適用于X命令。

當提交X語句時,將臨時退出SAS會話并獲得對Windows命令處理器的訪問權。X語句的語法如下:

X<′command′>;

2.1 使用X語句移動文件

X mkdir c: est_01;

上例命令的作用是在C 盤中建立一個新的文件夾test_01。如果將宏變量加入其中,則可以建立一個以日期為后綴的新文件夾,結果如圖5所示。

圖5 X語句新建文件夾

這樣操作可以將文件按照日期不同存儲在不同的文件夾中。除此以外,還可以復制文件到目標文件夾。

X copy C:from*.*C: o*.*;

此語句可以將C 盤中from 文件夾中的所有文件拷貝到to 文件夾中。為了避免某個文件被其他用戶使用導致無法被拷貝,在語句中加入另一個參數,指明輸出SAS output 的文件名,從該文件中可以查到是否所有文件都拷貝成功。即:

X“copy c:from*.*C: o*.*>C: eport.txt”;

同理,如果把copy 換成move,就可以將拷貝改成移動。X語句不僅能在個人計算機上使用,如果能與服務器正確連接,還能對服務器上的文件操作,只不過需要對文件的位置進行正確描述。例如,面對一個LINUX管理的服務器可以使用如下語句:

X“copy/home/files/template. xlsx/home/files/output.xlsx”;

X 語句可以采用不同的系統命令對目標文件實現復雜多樣的操作,用戶可以參考DOS命令獲得更多了解。

2.2 使用X語句前的處理

為了防止在運行其他程序的時候產生錯誤,在使用X 語句之前,應該先判斷一個文件是否存在,然后再進行下一個步驟。如果被操作的文件不存在,在調用運行外部程序的時候會出錯,導致整個SAS程序停止運行。

在判斷文件是否存在時,可以使用DATA 步,也可以使用宏語句。這里使用宏語句是為了對大量文件進行自動處理,而且還可以在log 中生成對用戶有用的警示信息,處理的日志如圖6所示。

圖6 X語句前的處理日志

一般情況下,在對文件進行處理前首先判斷文件是否存在宏程序中的常見操作。日常工作中當用戶面對大量文件的時候,有時候并不知道將要處理的文件是否存在,即便是對將要處理的文件夾提前處理,挑選出要處理的文件,這一步驟也不會省略。這是因為在服務器上的一個文件夾往往有多個用戶,如果文件已經被其他用戶移動,提前判斷文件是否存在即可避免SAS 程序意外終止。X 語句還可以使用XWAIT/NOXWAIT, XSYNC/NOXSYNC 等選項控制程序執行的時間,發現錯誤,SAS 會賦值給系統宏變量SYSRC[10-11]。

3 結論

SAS 擁有強大的數據分析的能力,但在日常工作中,分析之前的數據處理往往會占用更多的時間。在對這些文件進行處理時,又必須將其保存在其他文件夾下用于后續分析、比較以及可能的追溯。在進行分析時,還必須準確地定位這些數據文件,甚至要根據數據進行不同分析[4,7]。如果人為控制這些過程,必然耗費大量時間,而且難以避免錯誤。使用PIPE 功能可以自動定位查找將要分析的數據文件,如果結合宏的功能,還可以動態地處理數據文件,這一過程可以極大地提高效率。同時,X語句可以提交DOS命令對文件或應用進行操作,只需打開SAS 程序,點擊運行即可完成所有的操作,不需要中途退出。對于不熟悉SAS編程的人來說,僅僅需要修改一些文件地址就可以使用已經模塊化的程序。

猜你喜歡
程序用戶
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
創衛暗訪程序有待改進
中國衛生(2015年3期)2015-11-19 02:53:32
Camera360:拍出5億用戶
創業家(2015年10期)2015-02-27 07:55:08
100萬用戶
創業家(2015年10期)2015-02-27 07:54:39
主站蜘蛛池模板: 日韩二区三区无| 91成人免费观看| 精品综合久久久久久97超人该| 91午夜福利在线观看| 99re66精品视频在线观看 | 久久特级毛片| 看国产一级毛片| 久久激情影院| 亚洲天堂日本| www精品久久| 亚洲高清无码精品| 不卡无码网| 亚洲αv毛片| 亚洲一区无码在线| 欧洲亚洲一区| 免费看a毛片| 亚洲人成网线在线播放va| 国产视频大全| 亚洲综合中文字幕国产精品欧美| 国产高清不卡视频| 欧美精品色视频| 国产视频一区二区在线观看 | a级毛片一区二区免费视频| 乱人伦视频中文字幕在线| 亚洲a级在线观看| 免费一级毛片完整版在线看| 欧美日韩国产在线人| 亚洲成在人线av品善网好看| 国产欧美日韩一区二区视频在线| 中国精品久久| 国产精品人人做人人爽人人添| 精品亚洲欧美中文字幕在线看| 中日韩欧亚无码视频| 久久国产免费观看| 免费网站成人亚洲| 69视频国产| 无码国产伊人| 国产亚洲精品97在线观看| 亚洲高清日韩heyzo| 国内精品视频区在线2021| 亚洲高清日韩heyzo| 一级毛片免费观看不卡视频| 人妻中文久热无码丝袜| 亚洲无码高清一区| 国产精品第页| 人妻无码中文字幕一区二区三区| 欧美人与牲动交a欧美精品| 无码精品一区二区久久久| 久久亚洲美女精品国产精品| 久久青青草原亚洲av无码| 欧美国产日韩在线播放| 成人国产小视频| 国产精品亚洲天堂| a级毛片一区二区免费视频| 国产亚洲精| 99精品福利视频| 有专无码视频| 国产福利拍拍拍| 日韩精品毛片| 国产精品视频导航| 好吊日免费视频| 国产喷水视频| 自慰高潮喷白浆在线观看| 欧美在线综合视频| 久久a毛片| 亚洲伊人久久精品影院| 五月激情综合网| 天天色天天综合| 中文字幕色在线| 国产sm重味一区二区三区| 免费高清a毛片| 男人的天堂久久精品激情| av色爱 天堂网| 91精品国产丝袜| 伦伦影院精品一区| 亚洲区欧美区| 97精品国产高清久久久久蜜芽| 久久久久亚洲精品无码网站| 国内精品视频| 97狠狠操| 国产精品美女自慰喷水| 久久一本精品久久久ー99|