目标:根据Spec创建符合CDISC标准数据传输模型的SDTM DM数据集。
- 多个变量的连接用 || 进行间隔。
new = a || '-' || b || '-' || c ; /*a-b-c*/
- 重命名或直接创建新变量:
RENAME site = siteid ;
subjectid = subject ; /*site变量重命名为siteid ,在此新创建了变量subjectid*/
- 将age变量从字符型→数值型的方法:先将age重命名为age1,再使用input语句将age1转化为数值型。(?)
DATA DM1;
SET RAW_DEMO (rename= (age= age1));
age = input(age1, best.);
- 该案例的sex赋值正好为内容首字母,除if else函数外,还可以使用:
sex = substr(sex,1,1);
- 将其他表的内容合并至该表,采用merge by 。先进行排序。排序变量在两个表中的名字不同,应rename为同名。(merge中进行rename会先于排序步之前进行变量的重命名)。
- SAS会尽量保留两个表中所有的观测。dm1中只有19个观测,由于RAW_COUNTRY_LIST表中的一个观测在dm1中没有,SAS将其自动加入。导致出现了20个观测的结果。可以通过加入一个自动变量a的方法(in = a if a )来解决。不过具体什么原理还没搞懂