應(yīng)一位讀者要求,要我講講SAS生成XPT格式的方法,嗯,沒事,你們隨便“點菜”,至于會不會炒那就是我的事了。
遞交給監(jiān)管機構(gòu)的數(shù)據(jù)集要求是XPT格式的,而不是我們直接生成的.sas7bdat格式,至于為什么,人家老大說啥就是啥!允許你問了?
我們平時生成的SAS數(shù)據(jù)集是這樣的

接著我們就講講SAS生成XPT格式文件的方法,R可以生成,python也可以生成。但是SAS都沒學(xué)明白,就不要一口吃成大胖子了。
一般來說,公司聲稱SDTM、ADaM數(shù)據(jù)集都有專門的文件夾,我們生成XPT格式的文件也需要放在另外的、專門的文件夾里。我這里舉例子為了方便就都放在一個文件夾了。

這樣就生成了一個xpt文件

我用記事本打開出現(xiàn)了一堆亂碼,所以是不能用記事本打開XPT文件的,這樣一次只能生成一個xpt文件,要知道SDTM一般至少會有十幾個數(shù)據(jù)集,所以肯定是會用到循環(huán)的,寫一個宏就可以了。
這個“小叮當(dāng)”大神以前就寫好了,你們自己去看就好了。但是這位讀者不知道為什么把這個文章甩給我了,還要叫我寫一篇,說只要轉(zhuǎn)換一個數(shù)據(jù)集就好了?這不是把宏變量換成正常的數(shù)據(jù)集名稱就好了嗎?黑人問號臉。

還有一個方法就是proc?copy

位置1和位置2的作用都是一樣的,但是位置3這行程序不管用1還是用2都得寫!
或者用小叮當(dāng)?shù)牡诙N方法proc cport,這個你們自己去看他的文章吧。
還有一個方法是用SAS自帶的宏
?%loc2xpt autocall macro
長這樣子

我試了一下filespec后面直接跟著我的路徑,發(fā)現(xiàn)不行,路徑錯誤,因為它好像要先經(jīng)過C:\SASCONFIG。

但是可以通過filename寫入:

至于這個libref是用于存放xpt文件的文件夾還是存放數(shù)據(jù)集的文件夾,我也搞混了,應(yīng)該是存放數(shù)據(jù)集的文件夾。所以你們自己測試的話最好分兩個文件夾。
當(dāng)然,這個也可能用宏寫成一個循環(huán),SAS官網(wǎng)自己也舉了一個例子展示如何循環(huán)輸出多個XPT格式的文件到文件夾里。你們自己去看吧。