如何按照TFL模板給出的順序出表或者QC
上篇文章介紹了當(dāng)分類變量不全時(shí),如何去填補(bǔ)。XTH,公眾號:CDISC與SAS制作匯總表時(shí)不用dummy的方法,解決分類變量數(shù)據(jù)缺失-- proc means/ freq
這篇文章會介紹,當(dāng)填補(bǔ)完,如何按照TFL模板給出的順序出表或者QC。
方法一:proc?format(生成format)和proc?means
proc?format;
value ?...(notsorted)
…=…;
run;
notsorted:保留你當(dāng)前定義的順序。
proc?means data=...?noprint??nway??completetypes;
class … / preloadfmt ?order=data;
var ...;
output n=... ?out= ... ;
format ?... ... ;
run;
order=data:當(dāng)使用了PRELOADFMT,order=data會按照PROC FORMAT定義的順序排列。
方法二:proc format(提取format數(shù)據(jù)集)和proc freq
proc format cnlout=dataset;
select @format
run;
使用@可以自動檢索你想要的format,cnlout則輸出成dataset。
sql join步驟
dataset當(dāng)作dummy和分析數(shù)據(jù)集用proc sql join,
merge不推薦因?yàn)橐紤]by后變量的length和name。
proc freq data=?dataset?noprint;
tables?variable?*?variable?/?sparse?out=?dataset;
run;
缺點(diǎn):
方法一:需要定義format順序。
方法二:無法定義format順序,需要制作dummy。
優(yōu)點(diǎn):因?yàn)樵陧?xiàng)目中提前做好的CT文檔會生成我們需要的format,所以兩種方法均無需定義format。(注意區(qū)分定義format和定義format順序兩者的區(qū)別)解決方法:
當(dāng)定義format順序時(shí),可以復(fù)制TFL模板內(nèi)容進(jìn)excel(如A列),再利用公式進(jìn)行填補(bǔ)修飾(如B列)。操作起來非常方便,省時(shí),準(zhǔn)確度高。如下圖(也可以等于數(shù)值型的format,再生成排序變量)
另外,如果QC的時(shí)候,Source數(shù)據(jù)集可以自由排序再proc?compare的話,則無需定義format順序,可直接運(yùn)用方法一的proc?means,只不過需要仔細(xì)比對輸出的output和模板的排列順序。
而我司GDE建議不要在程序中單獨(dú)使用proc format,并且要求QC數(shù)據(jù)集和模板順序一致。盡管如此,也可以靈活運(yùn)用EXCEL進(jìn)行dummy的生成,再運(yùn)用方法二。
總結(jié),方法一和二會比傳統(tǒng)生成dummy處理方法要快捷,其中EXCEL的靈活運(yùn)用非常關(guān)鍵。
標(biāo)簽: