关键词:SAS个案合并; SAS变量合并
一、样本合并
假设“示例数据1.csv”数据库中记录了ID为1~15的15名研究对象的“age (年龄)”、“gender (性别)”、“grade (年级)”、“hight (身高)”和“weight (体重)”五个变量数据,“示例数据2.csv”数据库中记录了ID为16~30的15名研究对象的“age”、“gender”、“grade”、“hight”和“weight”5个变量数据,现需要将两个数据库的数据进行合并。
同时打开“示例数据1.csv”和“示例数据2.csv”。导入SAS时分别命名为data和data2。
本次选择“示例数据2”中ID为20~30号的样本,将其整合到“示例数据1.csv”,结果数据库如图1所示。
需要注意的是,样本合并之前,set语句对数据的变量顺序没有特殊要求,可将data2数据集中满足条件的变量直接添加在data数据集的下面。
data data3; set data data2(where=(ID<=30 and ID>=20)); proc print;run;
二、变量合并
假设“示例数据3.csv”数据库中记录了ID为1~15的15名研究对象的“age”、“gender”和“grade”三个变量数据,“示例数据4.csv”数据库中记录了ID为1~15的15名研究对象的“hight”和“weight”两个变量数据,现需要将两个数据库的数据进行合并。
同时打开“示例数据3.csv”和“示例数据4.csv”,并保存为data3和data4。
②通过merge过程对两个数据集进行横向的合并,结果如图2所示。
data data5; merge data3 data4; by ID; proc print;run;
需要注意的是,合并之前必须确保两个数据库中样本例数的ID顺序完全一致。如果ID不一致,则需要确保两个数据库中的数据均按照ID进行了相同顺序的排序(通过sort语句),然后通过by语句按照ID进行一一合并。
proc sort data=data3;by ID;run; proc sort data=data4;by ID;run; data data5; merge data3 data4; by ID; proc print;run;
三、数据筛选
在数据分析过程中,有时需要选择一部分数据进行分析,即选择满足一定条件的样本,比如,选择血红蛋白浓度大于160 g/L的样本人群,选择年龄大于60岁的样本人群。可以利用条件抽取、挑选出或删除符合/不符合一定条件的样本,如删除有缺失值的样本。这时就要使用条件语句对数据进行筛选。以“示例数据1”演示筛选出“gender”中为“male”以及“grade”中为“2”的样本,数据筛选操作步骤(结果如图3所示):
data data6; set data; if gender="male" and grade=2 then output data6; proc print;run;