自己写个spec——SAS程序员不能只会编程系列(第Ⅴ弹)

哑铃 砝码数据

关注我们 与砝码一同成长 |



经历了长期的拖更,咱们的“SAS程序员不能”系列仍然要继续更新,今天将是spec系列的最后一章。如果你不记得之前的内容,我们来回忆一下。


Spec就像一个楚楚动人的美女,而我们SAS程序员就是追求她的男青年。追求的第一步是追求她、第二步是读懂她,第三步自然就是……


变成她!

追求篇:SAS程序员不能只会编程:了解spec

读懂篇:SAS程序员不能只会编程:读懂spec


作为一个SAS程序员,很多时候我们都不仅需要按照spec的内容来创建数据集,还需要自己写一个spec。


其实,创建spec的思路并不难,跟把大象装冰箱一样,创建一个spec也只需要三步:


本文到此结束,如果你觉得小编写得好别忘了点赞再看收藏转…….

其实,这个过程谁都会,但如果真要落实在行动上,我们又会发现各种问题。


下面,咱们就拿一个具体的例子,来具体说说spec到底是怎么写的吧。



一般而言,如果你被安排了一个写spec的活,第一步的任务并不是打开Excel,而是根据已有的spec进行改造


你可以问问公司的前辈或统计师,公司是否有spec的模板,或者其它可以借鉴的项目。

在打开模板spec后,我们的第一步是确定所需要的变量


以SDTM为例,我们需要打开CRF和SDTM IG,针对每一页的每个收集的数据,都思考它所对应的是哪个SDTM变量。


例如以下CRF页:

首先调动经验,Weight、Systolic Blood Pressure、Diastolic Blood Pressure都应该放在VS数据集中,然后这些测验的名字都应该在VSTEST里面,数值放在VSORRES里,单位放在VSORRESU里。


注意这里的两个关键字:经验!如果你有经验,可以快速定位CRF收集的数据所放的位置。如果你没有经验,就需要对比着SDTM IG每个数据集和每个变量依次查看。


因此如果你问我做SAS程序员最重要的是什么,我会毫不犹豫地告诉你:经验!

只要你按照CRF过一遍,所有数据都应该被放到了spec里面,这样就结束了吗?


当然没有!


在SDTM中,还有一些变量并不是从原始数据而来,而是描述数据集信息的变量,例如STUDYID、DOMAIN、xxSEQ。


另外还有一些变量,并不是从CRF而来,而是需要我们进行一定的计算,例如xxBLFL,xxDRVFL,这些变量就需要我们根据试验的设计来确定,此时SAP又成了需要参考的文件。


最后不要忘记,spec里还有用于描述变量的其它信息,例如标签、长度、类型等等,这些列也要填写正确:


- 标签的内容要求和SDTM IG完全相同


- 类型可以简单的分为字符型和数值型,也要求和SDTM完全相同


变量的长度应在满足容纳所有值的情况下尽可能小,比如USUBJID设置为30VSBLFL设置为1

 

当然,千万不要觉得spec是必须一次正确的文件。跟我们的程序一样,后续随着项目发展,再往前修改spec是一个非常正常的情况,只要你的spec结构正确,根据后来的反馈进行修改基本是每个spec的必经之路。

 

你有没有被spec弄得焦头烂额?不知道从哪下手呢?


偷偷告诉你,我其实在开发一个通用spec模板以及配套的宏程序,目的是让你直接在模板里填写内容然后宏程序直接读取就能生成数据集模板。


有了它,你的编程效率一定会有极大的提升。


如果你觉得这是一个有用的东西,别忘了给这篇文章点个赞,并且关注砝码数据!我会在公众号里分享这个工具!




END



文章推荐