前面的篇文章關(guān)于SDTM編程的一些想法(1) --Trial Design、DM開了個頭,開始介紹SDTM數(shù)據(jù)集的編程思路,內(nèi)容涉及了Trial Design、Special Purpose中的DM。這篇文章介紹Special Purpose中的CO數(shù)據(jù)集的編程注意點。
關(guān)于CO數(shù)據(jù)集的內(nèi)容,臨床試驗CRF中Form介紹23:Comments(CO)數(shù)據(jù)集相關(guān)介紹了CO數(shù)據(jù)集收集的信息、信息來源以及一些變量。CO數(shù)據(jù)集的注釋來源主要有兩塊:
- 在CRF中,與其他SDTM數(shù)據(jù)集信息一起收集的注釋;
- 在CRF中,單獨的頁面,收集的注釋。
COVAL
CO數(shù)據(jù)集中的Topic變量為COVAL,記錄注釋的信息,這個變量在記錄中不能為空。當注釋文本超過200 個字符時,注釋的前200 個字符將位于COVAL 中,然后COVAL1 中,存儲接下來的200 個字符,類似延伸到COVALn。對于COVA變量長度過長的情況,各公司一般都有相應的宏進行處理,也可以進行手動編程。這里有一個注意點,就是第200個字符處如果單詞截斷如何處理。一般完善的宏都會考慮這種情況,將截斷的單詞放到下一個COVALn變量中;手動編程處理時,兩種處理方式的案例都遇到過。下面分享一下,手動編程處理的代碼:
***考慮不考慮單詞截斷;
data co;
set co_;
length coval coval1-coval4 $200;
if length(coval_) >200 then do;
put "The length of COVAL is greater than 200!";
coval = substr(coval_,1,200);
coval1 = substr(coval_,201,200);
coval2 = substr(coval_,401,200);
coval3 = substr(coval_,601,200);
coval4 = substr(coval_,801,200);
end;
else coval = coval_;
run;
Rdomain
Rdomain,關(guān)聯(lián)域名的縮寫,對于與其他SDTM數(shù)據(jù)集信息一起收集的注釋記錄,填寫對應的域名;對于單獨的頁面,收集的注釋,Rdomain變量為空。
IDVAR 和 IDVARVAL
CO編程另一個需要注意的是IDVAR(標識變量) 和IDVARVAL(標識變量值)。對于CRF中單獨頁面收集的注釋,與其他SDTM域沒有關(guān)聯(lián),這兩個變量值為空,沒有什么需要注意的地方。
對于與其他SDTM數(shù)據(jù)集信息一起收集的注釋,這兩個是用來表示CO數(shù)據(jù)集記錄與其他數(shù)據(jù)集記錄之間的聯(lián)系的,需要有值。通常IDVAR的值為“--SEQ”、“--GRPID”,IDVARVAL的值為與注釋相關(guān)聯(lián)的其他SDTM數(shù)據(jù)集記錄的--SEQ的變量值。為獲取IDVARVAL的值,需要讓CO數(shù)據(jù)集與相關(guān)聯(lián)的數(shù)據(jù)集進行拼接,而拼接需要考慮的是關(guān)鍵變量的選取。
拼接的關(guān)鍵變量我們通常選用USUBJID、COSPID(--SPID)。相關(guān)聯(lián)的記錄對應的受試者(USUBJID)肯定是一個人,所以USUBJID為關(guān)鍵變量。而注釋信息與其他數(shù)據(jù)集相關(guān)聯(lián)的信息是一起收集的,而--SPID通常由收集的Folder、Form信息生成,所以對于兩個相關(guān)聯(lián)的記錄的--SPID變量值是相同的,--SPID可以作為關(guān)鍵變量。
除了這兩個變量,拼接時可能需要新增關(guān)鍵變量。這是由于原始數(shù)據(jù)集一條記錄會生成多條SDTM數(shù)據(jù)集記錄,這些記錄的--SPID變量值可能相同,所以需要新增關(guān)鍵變量進行區(qū)分,從而準確定位CO數(shù)據(jù)集記錄與其他數(shù)據(jù)集記錄的關(guān)聯(lián)關(guān)系。下面我給出一個拼接代碼的示例:
proc sql noprint;
create table co_ie as
select a.*, strip(put(ieseq,best.)) as idvarval length = 40
from co as a left join sdtm.ie as b
on a.usubjid = b.usubjid and a.cospid = b.iespid;
quit;
以上就是SDTM CO數(shù)據(jù)集編程的一些注意點,若有疑問,歡迎評論區(qū)討論。接下來會持續(xù)介紹其他數(shù)據(jù)集。