客户服务

扫一扫  添加小助手

服务热线
13818320332

渠道代理
签到有奖
扫码关注

扫一扫  关注我们

SAS编程及应用之TFL comments

熟悉和了解一些general的TFL comments是有必要的。

1 改变某张table或listing的header或某一行的label,而值不变。比如一段语句中首字母大写,把start date/day变成date/day of start,连接符前后要加空格等等。大部分时候,这种更新是有依据、有意义和有必要的,它能让TFL的呈现更标准化,易于理解,更符合试验要求。

2 增加某行或某列。如果新加的变量更合适放在ADaM中生成,那可以在ADaM程序中更新代码。对于ADaM data set,因为要求ready to analysis,我认为,把在一些TFL中的programming code放到ADaM中更好些,具体原因如下:
除了ADaM model要求的基础变量之外,ADaM数据集是可以按user-defined的要求,在follow ADaM general standard的前提下,运用相关的computation rules生成新的变量,并可以命名它。
ADaM数据集服务于TFLs,它是为更方便生成TFLs而创建的数据集。假设,现在要连接start date, start day, end date, end day, duration,形成一个变量在listing输出,但这个信息表达在另外3个listing也要求出现。编程时,我们要写一段代码:合并5个变量,生成一个新变量(由于可能要考虑到各种情况,按某种format科学合理的呈现data,代码有时挺复杂,挺长)。如果我们都在listing中执行programming过程的话,那是不是要把这段程序写3遍,如果以后算法需要更新呢?不管是同一个人只是copy自己的程序,还是其他人重新写,这都会增加production和validation的工作量。而如果我们在ADaM编程,则只用update一次,而且维护也方便。
对于Listing的qc,要不要写完整的validation程序且不论。如果original和validation都在TFLs中programming的话,因为双方使用的变量属性不一样,程序中的处理也不一样,这就增加compare的时间成本。对于关键变量的qc,放在ADaM中处理,TFLs只需调用即可。
服务于数据管理和统计的目的,常常需要对分类型的字符变量数值化,一些关键的分类变量常用于分层或分组,或用于模型统计,把变量值code为“1”和“2”,与code为"0"和"1",意义差别很大,在模型中的运用和解读也不一样,故统一处理较好。
所以,我觉得经过SDTM标准化数据之后,ADaM是个很重要的步骤,承上启下,科学合理运用,对整个study的高效,快速,准确的完成很重要。

3 像CM中的date信息常常不是很清楚的,在listing中如何呈现呢?首先,listing中呈现的都是"raw data"。在ADaM中,像--STDTC,--ENDTC,--DTC,这都是直接从SDTM中拿过来的,SDTM也是从raw data里拿的,那在listing应该display这样的原始变量。像“2013-06”,“2000”,这种日期时间数据不完整的就是"raw data"。而ASTDT是经过某种rule算出来的,更多的是分析所用。如果某一条CM的记录只有start date,没有end date,因而也没有duration,那要像上面要求怎么连呢?有的要求是不管后面有没有数据,也要用类似"/"来标注,以说明这个记录没有end date,比如“2013-06/”,也有表示成“2013-06”,直接把后面放空。再比如像某列要显示yes or no,如果是yes,在后面写原因。可以显示成Yes/Reasons或者No,如果结果为yes但原因缺失,仍然显示成"Yes/"。我个人prefer后者,虽然看起来好像有点多余,但信息表达很清晰。

4 有些title/footnote,analysis population需要更新。在title中,可能需要加入选定的语句来更加明确地表达出这个表的内容。footnote可能需要加入更详细一点的footnote来解释TFLs中用到的省略词语,比如severe AE中,1 = Results in Death,Baseline is defined the last non-missing record before first dose. Study day is defined as the day relative to the first dose等等。表中的标记,如[a], [b]等,要和下面的footnote一一对应。同一个footnote可能存在很多个TFLs中。比如listing中要出现的subject/age/sex/race,在footnote中就要说明这里面的值代表什么意思,比如F = Female, W = White之类。
5 针对某些table的update,改动也许比较大了。比如开始给出的shell里面,只要summarize某个SOC/PT之下的subjects and percent,而实际上一般都是SOC一个汇总,下面每一条PT也汇总,PT下面可能再有Severe Grade或者Relationship to study drug之类的分组。可以在程序里一层一层地把它都求出来,要哪些内容再输出哪些内容。因为有些draft mock-up没有finalized,后面可以需要加入更多的内容,不如开始写程序的时候,就考虑得多一点。
6 某个table后面,一般都有某个listing与之对应,以及表和图,便于cross check。比如在table中算得的年龄最小值为18,而在后面的listing中,从一条条的patient看过去,年龄都是大于20的,那这就前后矛盾了。再例如,前面的disposition表显示safety population(如果这个flag是定义为服用过试验用药的人)只有10个人,但其他表的header中的大N总和并不等于10,原因可能是这个人dose date不为空,但arm=not assigned,也就是说,这个人有用药记录,但没有给他assignment treatment。像这种comments,有的时候是data本身的issue,另外就是程序中可能出现了错误。

       文章来源: 法迈医讯

       本网站刊载的所有内容,包括文字、图片、音频、视频、软件等,如非标注为“原创”,则相关版权归原作者所有,如原作者不愿意在本网站刊登相关内容,请及时通知本站,我们将第一时间予以删除。


上一篇:干货 | 如何做好质量记录
下一篇:【干货】HPLC方法开发典型思路经验小结
曜分享
分享精彩资讯

热门资讯



 
 
  • 设计精良 制作精心
  • 广
    大咖齐聚 领域广泛
  • 团队支撑 专业保证
  • 功能丰富 营销多元