| SAS V5傳輸文件格式簡介 分享

作者:PPC佳生  來源/微信公眾號:PPC-CRO 發布日期:2019-08-07

綜述簡介
SAS V5傳輸文件格式,也就是通常所說的XPT文件格式,是向監管機構提交臨床數據所使用的一種數據格式。SAS V5傳輸文件格式是由SAS公司開發的。相較于一般的SAS數據集(后綴為.sas7bdat的文件),SAS V5傳輸文件格式的標準是開放的,采用這種文件格式是為了方便在不同的系統之間交換數據。按照現行CDISC標準(如SDTMIG v3.3),給監管機構提交的數據集格式就是SAS V5傳輸文件格式。
SAS V5傳輸文件格式有如下特征:
1) 變量名最多支持8個字符
2) 變量值最多支持200個字符
3) 變量標簽最多支持40個字符
SAS V5傳輸文件格式廣泛應用于生物制藥行業。從SAS9.3開始,SAS公司提供了兩個宏來處理這種格式的文件。宏%LOC2XPT用來把SAS數據集轉成成SAS V5傳輸文件;宏%XPT2LOC用來把SAS V5傳輸文件還原成SAS數據集。下面來看一下這兩個宏。我們先創建一個示例用的數據集trans.class,這個數據集是從sashelp.class復制得來的。代碼如下:
libname trans "/folders/myfolders/sashelp";
proc copy in=sashelp out=trans;
select class;
run;
宏%LOC2XPT
這個宏的調用也很簡單,只需要一句代碼即可,代碼是:
%loc2xpt(libref=trans, memlist=class, filespec='/folders/myfolders/class.xpt');
調用之后就得到文件class.xpt。注意,這個xpt文件是使用XPORT引擎創建的。
下面再近距離的看看xpt文件。所有xpt文件的每一條記錄長度都是80個字節。因此,使用下面的data步可以查看這個xpt文件的內容。注意在這個data步里infile語句使用選項lrecl=80,來指定記錄的長度。
data _null_;
infile '/folders/myfolders/class.xpt' recfm=f lrecl=80;
input x $char80.;
list;run;
這個data步運行后的日志文件如下圖(截取了部分):
上圖紅色框的部分是xpt文件的頭文件,藍色框部分是xpt文件的數據部分。頭文件用來描述當前xpt文件的信息,包括SAS的版本,操作系統,xpt文件的創建時間。另外在文件頭還有2行的信息需要注意特別下:
HEADERRECORD*******NAMESTR HEADER RECORD!!!!!!!000000000500000000000000000000
這一行標識了該xpt文件所對應的數據集有多少個變量,紅色字體000005表示的就是這個信息,在這個例子就是5個變量。
HEADERRECORD*******OBS HEADER RECORD!!!!!!!000000000000000000000000000000
這一行看字面意思應該是標識了該xpt文件所對應的數據集有多少條觀測,然而并非如此,這一行的末尾只是簡單的使用空字符來填充,也就是上面紅色字體顯示的30個“0”。
宏%XPT2LOC
這個宏的調用也很簡單,也是只需要一句代碼即可,代碼是:
%xpt2loc(libref=work, memlist=class, filespec='/folders/myfolders/class.xpt');
調用之后就得到數據集work.class。
來看一下調用這個宏解析出來的最后一個data步的SAS代碼:
data work.CLASS (label="Student Data" );
infile '/folders/myfolders/class.xpt' recfm=n lrecl=32767 ;
if _n_=1 then input @[email protected];
length NAME $ 8 ;
length SEX $ 1 ;
length AGE 8 ;
length HEIGHT 8 ;
length WEIGHT 8 ;
input NAME $ASCII00008. SEX $ASCII00001. AGE XPRTFLT8. HEIGHT XPRTFLT8. WEIGHT XPRTFLT8. @@;
output;
if _n_=19 then stop;
run;
打開宏%XPT2LOC的源代碼可以看到,這個data步是通過解析xpt文件得到的。
這個data步里面的變量名是通過xpt文件的文件頭獲得的。這個data步的最后一句表示了循環19次就停止運行,也就是說生成的數據集包含了19條觀測。在前面的敘述中,觀測的數量并沒有存儲在xpt文件的文件頭,觀測的數量是通過計算xpt文件的數據部分得到的。觀測的數量信息沒有存儲在xpt文件的文件頭,顯得不是太直觀。但是SAS V8傳輸文件格式的文件頭部分是包含了這個信息的。
總結
以上就是對這兩個宏進行的解讀。通過調用這兩個宏,就可以完成SAS數據集和XPT文件之間的相互轉換。值得注意的是,這兩個宏每次只轉換一個文件。而我們的實際項目,都是包含多個文件,所以需要對這兩個宏再一次進行封裝,把這兩個宏嵌套進新的宏里面,讓它們一次可以轉換多個文件。在文檔《Moving and Accessing SAS 9.4 Files, Third Edition》里,SAS公司提供了相應的參考代碼。
參考文獻:
[1]. 《Moving and Accessing SAS 9.4 Files, Third Edition》(http://documentation.sas.com/api/docsets/movefile/9.4/content/movefile.pdf)

關于我們
About Us」
PPC佳生集團(PPC Group)是一家成立于1997年的臨床CRO公司。總部設立于上海,并分別在臺北,徐州,北京,南京,首爾及東京設立了分部及分公司。
自成立以來我們始終致力于為國內外制藥企業及生物技術公司提供專業的臨床研究服務及生物樣本分析服務。至今,PPC佳生已經完成了超過2000項I期臨床試驗項目及超過500項II期至IV期臨床試驗項目,其中涉及24個主要研究領域。另外,PPC佳生的I期臨床中心及生物分析實驗室也分別通過了美國FDA,中國NMPA,臺灣TFDA,日本PMDA,歐盟EMA及馬來西亞NPRA等的核查。
2012年,PPC佳生在臺北(MacKay Memorial Hospital)建立了第一家專屬I期臨床研究中心;2017年初與徐州醫科大學合作共同建立了徐州醫科大學附屬醫院I期臨床研究中心;2018年,PPC佳生又分別與徐州市中心醫院,湖北省鄂東醫療集團黃石市中心醫院共同建立了2家專屬的I期臨床研究中心。

關注PPC佳生微信公眾號,獲取更多精彩內容

福彩3d家彩网首页