以下是一个示例代码,演示如何按照主键将SAS数据集按列拆分:
/* 创建示例数据集 */
data have;
input ID Var1 Var2 Var3;
datalines;
1 10 20 30
1 11 21 31
2 12 22 32
2 13 23 33
3 14 24 34
3 15 25 35
;
/* 按主键拆分数据集 */
data split1 split2;
set have;
by ID;
if first.ID then output split1;
else output split2;
run;
/* 输出结果 */
proc print data=split1;
run;
proc print data=split2;
run;
在这个示例中,我们首先创建一个示例数据集have
,它包含ID和三个变量(Var1、Var2、Var3)。然后,使用data
语句创建两个新的数据集split1
和split2
,用于存储拆分后的数据。
在set
语句中,我们使用have
数据集作为输入数据集。然后使用by ID
子句指定按照ID变量进行排序。在if
语句中,我们使用first.ID
来判断是否是每个ID的第一行。如果是第一行,则将其输出到split1
数据集中,否则输出到split2
数据集中。
最后,使用proc print
语句分别打印split1
和split2
数据集的内容,以查看拆分后的结果。
请注意,上述示例代码仅适用于按照单个主键对数据集进行拆分。如果有多个主键,需要相应地进行修改。