APP下载

一种可简化临床试验数据分析的SAS数据结构转换方法*

2016-06-24东南大学公共卫生学院流行病与卫生统计学系210009承晓华王诗远

中国卫生统计 2016年2期
关键词:原始数据数据结构字符

东南大学公共卫生学院流行病与卫生统计学系(210009) 承晓华 王诗远 刘 沛



一种可简化临床试验数据分析的SAS数据结构转换方法*

东南大学公共卫生学院流行病与卫生统计学系(210009) 承晓华 王诗远 刘 沛△

数据管理标准临床数据交换标准协会(the clinical data interchange standards consortium,CDISC)建立了一系列标准来规范药物临床试验中的数据结构和分库方式以支持数据采集、交换、递交和储存临床试验数据[1]。数据结构的标准化是临床试验数据管理的规范化和自动化的前提,在CDISC标准的支持下根据临床试验数据采集特点进行规范化的数据管理为大势所趋。现今临床试验原始数据收集过程中,为方便病例报告表(case report form,CRF)的录入常常将同一受试者的各种观察结果,如基本信息、各阶段访视信息、实验室检查数据、不良反应和合并用药等列于同一行中,得到同一条记录内具有多个观察指标(变量)的数据结构。这种结构因其与CRF的顺序一致而具有录入速度快和符合人们阅读习惯,方便研究者观察等诸多优点,但给不良事件、合并用药以及不同时间段实验室数据的SAS编程造成了较大困难。基于原数据结构编写分析程序需要将涉及到的变量全部写入程序中,过程繁复易出错。目前对此问题的解决方法常常是采用数据结构转换,将这种横向结构的数据转换为纵向结构,本文基于此提出一种可简化临床试验数据分析的SAS数据结构转换方法,可大大简化临床试验数据集预处理过程,并为后续的统计分析提供方便。

方法介绍

从实现数据结构转换、尽可能减少人工操作成分和扩大程序通用性角度出发,利用SAS宏的字符运算功能,实现仅修改个别宏参数达到不同域的原始横向数据向纵向数据结构的转换。编程的基本思想为:通过对规则化命名的变量识别,从原始数据集提取所需变量信息并处理成各功能列表,将其应用于列表处理和数组提取。具体编程的各个步骤思路介绍如下。

1.定义宏参数,这些宏参数是本程序应用过程中唯一需要手工添加的部分。主要包含原始数据集、提取的变量和输出数据集等。各个宏参数的名称和含义见表1。

表1 程序中使用的宏参数

2.有效性验证,验证数据集参数是否合法,是否存在对应数据集,操作变量是否存在于数据集中,外部路径是否有效,并获取变量信息。提取原始数据集每个变量的变量名,标签,长度和格式等信息并将其保存到新的数据集中。筛查非数据集变量并剔除。

3.通过Scan函数[2]提取原始数据集中前缀符合Targetlist的全部变量,并通过截取尾坠相同的变量组,循环赋值获得储存目标变量的宏变量。在此步骤中读取目标变量的顺序即为Targetlist中宏参数的顺序,因此最后输出的数据集中的变量顺序可以按照要求和目的不同而改动,且不用考虑变量的具体属性。

4.通过SAS Proc SQL过程[3-4]提取变量的类型(Type)、标签(Label)、纵向维数,以及日期变量,并将各个变量名储存至列表型宏变量中。这一步是后续实现自动化的关键,提取出的变量属性用于之后变量的分类和定义,正是因为这一步使得定义宏参数时可以不再需要对数据进行预处理以分别列出字符型和数值型两个组。

5.定义AddValueList,添加原始数据集中未包含的行信息。

6.对整理好的变量按顺序分别整理至字符型和数值型两个数组,并保留变量原本的属性,使用Compbl函数[2]将之前步骤中多余的空格去除。

7.最后将之前制作好的数组和变量组合起来完成行×列的对应赋值,形成纵向结构的新数据集,见表2。表2程序先判断是否存在字符型变量,若存在则进行排列,数值型变量同理。然后再将原始数据集中的值赋值进去,并使用自定义标签变量Tag判断每条记录是否为空,见程序第16行,以此输出到两个不同的数据集,分别为包含记录的数据集和不包含记录的数据集,方便之后的统计分析。

表2 数据结构转换数组读取宏程序

应用实例

以某乙肝疫苗合并用药数据结构变换为例,说明程序应用结果,原始数据集结构如表3。

为了直观展示宏程序功能,表3省略了一些中间变量,仅保留NA(药物名称)、FO(药物剂量)和RO(给药途径)的前三条信息。由表3可知,原数据结构将每个受试者合并用药的信息列于不同的列中,形成众多变量,这使得后续合并用药率等的统计分析编程较为复杂。执行如下程序:

%TableFormTransform(DataIn =CRF,TargetList =%bquote(CM1NA,CM1FO,CM1RO),DataOut =CM,DataBlank =CM_Blank,Keeplist =,AddValueList=)

这里原始数据集为CRF,目标变量为字符型的CM1NA,和数值型的CM1FO和CM1RO,输出的转换后包含记录的数据集为合并用药数据集(concomitant medications,CM),不包含记录的为CM_Blank,并保留原始数据集中记录编号。这里这个数据集要做的是合并用药的内容,因而AddValueList没有需要拼接的症状名称,所以为空。运行程序后则得到转换后的数据集CM,如表4。

比较表4和表3的数据结构可知,本文给出的方法将位于不同列中的同属性变量转化为位于同列的一个变量,同时结构转换后的数据集中变量的排列顺序即为TargetList中目标变量的顺序,这为后续合并用药率等统计分析提供了方便。

表3 某乙肝疫苗合并用药原始数据结构

讨 论

将同一受试者的不同观察指标(多个变量)作为一条记录列于同一行上的横向数据结构广泛存在于临床试验的数据库中。诚然,这种数据结构有利于数据管理者的数据录入、数据核查和研究者对数据的认识和观察。但必须指出的是,这种“通用”的“标准”数据结构常常给后续的统计分析带来困难。使用这种数据结构进行统计分析,编写的程序在不同的临床试验中很难重复利用。纵向数据结构在统计分析时具有很高的效率,有着工作量小、能减少多变量编程过程中可能引起的失误,并且有着程序更普遍适用性等优点。在CDSIC标准中,研究数据表格模型(study data tabulation model,STDM)提交的数据格式也为纵向数据;分析数据库模型(analysis data model,ADam)模块中基本数据结构(basic data structure,DBS),每例受试者不同时点、不同分析指标有一条或多条记录,支持参数和非参数分析,这里的数据同样也是纵向数据格式。药物临床试验中的数据管理方法多样,实现数据结构转换,通常有两种思路,一是通过循环运算,二是通过数组排列。这个过程往往需要对变量进行一个个判断,将其归类或者重新定义属性,若处理多个数据集,则需要较长时间,且易发生错误。因而,寻找一种高效方法对原始横向数据结构进行转换具有实际意义。

本文所介绍的方法通过识别变量属于字符型还是数值型后,直接将其原本的属性即标签、格式、长度,通过SQL过程继承下来,一步到位,不需要人为地对其进行定义和选取。通常在数据结构变换过程中,对字符型数据和数值型数据需要分别列出两个数组,而本文介绍的程序通过创建宏变量进行预处理识别变量的类型并将其归入数值型和字符型两个列表(List)中,为之后提出变量组成数组做预处理。最后得到的输出数据集纵标目的顺序即为调用宏语句“TargetList =% Bquote(Parameter1,Parameter2…)”中宏参数的排列顺序,在应用时可以随意调换参数位置并且不考虑这些变量是属于数值还是字符型,为批量处理提供方便。

表4 某乙肝疫苗合并用药变换后的数据结构

临床试验中数据采集、数据管理的规范化对保证临床试验质量十分重要,而目前国内在这些方面和国外相比尚有较大差距。CDSIC标准给临床试验数据标准化提供了基础。本文以数据管理自动化为目标,编写可以广泛应用于CDISC标准化命名变量的宏程序,实现数据结构转换的规范化。需要注意的是,在实际工作中若临床试验电子CRF数据设计的变量名不规范,则可采用本课题组先前提出的《流行病学调查报告数据标准化入口的SAS实现》[5]进行变量命名的标准化,再配合本文方法,即可实现能广泛应用于临床试验和/或流行病学现场调查的数据结构转换。

参考文献

[1]Team,C.S.D.S.Study Data Tabulation Model(SDTM).2008.http:/ / www.cdisc.org/ sdtm.

[2]SAS Institute Inc.Sas9.1.3 Help and Documentation.Cary Nc:Sas Institute Inc,2003.

[3]SAS Institute Inc.Sas Institute Inc .Sas9.1.3 Sql Procedure Users Guide.Cary,Nc,2006.

[4]SAS Institute Inc.Sas Institute Inc .Base Sas9.1.3 Sql Procedure Guide:Statistical Procedures.Cary,Nc,2006.

[5]王诗远,刘沛.流行病学调查报告数据标准化入口的SAS实现.中国卫生统计,2013,30(1):114-118.

(责任编辑:刘 壮)

*基金项目:国家科技重大专项“艾滋病和病毒性肝炎等重大传染病防治”(2011ZX10004-902)

通信作者:△刘沛,E-mail:liupeiseu@126.com

猜你喜欢

原始数据数据结构字符
GOLDEN OPPORTUNITY FOR CHINA-INDONESIA COOPERATION
数据结构线上线下混合教学模式探讨
受特定变化趋势限制的传感器数据处理方法研究
论高级用字阶段汉字系统选择字符的几个原则
为什么会有“数据结构”?
字符代表几
一种USB接口字符液晶控制器设计
图片轻松变身ASCⅡ艺术画
全新Mentor DRS360 平台借助集中式原始数据融合及直接实时传感技术实现5 级自动驾驶
高职高专数据结构教学改革探讨