最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

如何計(jì)算vlm中變量的實(shí)際最大長度—非泛用

2022-03-04 13:48 作者:CDISC與SAS  | 我要投稿


????????以上是從P21跑出來的excel spec,暫且不考慮CO和TS出現(xiàn)spilt variables不放進(jìn)supp的情況。我們需要根據(jù)Description來計(jì)算Dataset中某個(gè)variable的length。????????今天介紹的方法并不是直接處理P21 export的excel spec,所以程序并不泛用,之后會介紹直接處理excel spec的泛用方法。????????下圖是我司vlm文件截圖,可以根據(jù)上圖自行解析下圖每個(gè)column意思,在此不作解釋。

??????? SAS要求字符型加引號才可識別,WhereValue中如果是同屬同一變量,用逗號分隔,再根據(jù)comparator得出計(jì)算符號,即RDOMAIN IN (“PC”,”IS”)。而不同屬則如下圖,以分號分隔,即LBTESTCD EQ ”GLUC” and LBCAT EQ ”URINALYSIS”。為了給WhereValue里value加上引號的所以我們最好用正則表達(dá)式解決問題。

????????WhereValue=prxchange(‘s/\b([^,;]*)\b/”$1” /’,-1,WhereValue);????????簡而言之,抓取除逗號和分號以外任何字符,并加上冒號。見下圖。

????????下一步操作就是把variable和value組合成SAS可讀的語句。可以把vlm中每條觀測的variable/comparator/value做成宏變量,????????Call symputx (’var’||cats(_n_),variable) ;????????Call symputx (’com’||cats(_n_),comparator) ;????????Call symputx (’val’||cats(_n_),value) ;????????再讀取variable/comparator/value中分號的數(shù)量,便于把每個(gè)變量及其對應(yīng)的計(jì)算符號還有值組合成 if 的篩選語句再單獨(dú)做成宏變量。????????Call symputx (‘n’||cats(_n_), count(variable, ”;”));????????下圖scan可靈活使用單引號處理帶雙引號的數(shù)據(jù),比如scan('"hi"',1,""),%bquote可省去。

?????????如果同屬同一變量則做一次 if 語句即可,比如if RDOMAIN IN (“PC”,”IS”)。但如果不同屬,因?yàn)槎鄺l獨(dú)立的 if 語句和單條 if 語句中的多條and是對等的,所以做循環(huán)即可。比如if LBTESTCD EQ (“GLUC”); if LBCAT EQ (“CHEMISTRY”);。

????????最終得到符合條件的可直接max length的數(shù)據(jù)集。????????另外最后在set眾多數(shù)據(jù)集時(shí),可使用proc append進(jìn)行多數(shù)據(jù)集set。




總結(jié):????????? P21的excel spec如果是在supp中,vlm的長度并不是真實(shí)的最大長度,我們需要人工check并且修改填補(bǔ),所以編寫macro是能節(jié)省時(shí)間提高效率的最好方法。??????? VLM是人為決定是否給該變量增添vlm,所以與結(jié)合數(shù)據(jù)集以及vlm/ct/spec從而使P21 export的excel spec不同的是,我司vlm文件并不會把spilt變量寫進(jìn)去,因?yàn)轭A(yù)先并不知道free text會產(chǎn)生多少個(gè)大于200 char的變量,因此在此macro之前,我還寫了一段根據(jù)實(shí)際spilt變量自動output成類似下圖的程序(當(dāng)然公司有專門的程序)。然后就是重復(fù)上文步驟。

????????以上是根據(jù)公司的實(shí)際情況進(jìn)行的處理。

????????? 泛用方法就是直接在P21 export的excel spec中處理,如果是SAS就是運(yùn)用正則把Description變成SAS可讀語句,即IN/EQ/NOTIN/NE等運(yùn)算符后的value加上引號,再把整個(gè)Description當(dāng)成篩選語句。此正則表達(dá)式之后分享。

???????如有問題,歡迎私信,一起討論交流!wx:Terhing


如何計(jì)算vlm中變量的實(shí)際最大長度—非泛用的評論 (共 條)

分享到微博請遵守國家法律
米林县| 山东| 防城港市| 安义县| 玉树县| 桐城市| 伊金霍洛旗| 内黄县| 贺兰县| 邵东县| 东莞市| 宣武区| 巴林左旗| 安陆市| 绵竹市| 晋宁县| 砀山县| 晋中市| 中超| 墨竹工卡县| 巨鹿县| 邢台市| 萨嘎县| 慈利县| 北碚区| 上虞市| 建瓯市| 周口市| 江源县| 昔阳县| 淮滨县| 西吉县| 车险| 曲周县| 康平县| 万州区| 新绛县| 博罗县| 昂仁县| 太康县| 大足县|