Sas 级联与交织
我无法理解Sas 级联与交织,sas,Sas,我无法理解交错和串联 交错 proc sort data=ds1 out=ds1; by var1; run; proc sort data=ds2 out=ds2; by var1; run; data testInterleaving ; set ds1 ds2 ; run ; 串联 data testConcatenation; set ds1 ds2; run; 我测试了这些数据集,得到的数据集完全相同,除了
交错
和串联
交错
proc sort data=ds1
out=ds1;
by var1;
run;
proc sort data=ds2
out=ds2;
by var1;
run;
data testInterleaving ;
set ds1 ds2 ;
run ;
串联
data testConcatenation;
set ds1 ds2;
run;
我测试了这些数据集,得到的数据集完全相同,除了观察的顺序,我认为这并不重要。两个结果数据集包含完全相同的观察结果。那么,除了顺序之外,还有什么不同呢?结尾的数据步骤是完全相同的。您正在执行相同的代码,无论您是否提前排序 我认为你在交错中的意思是
data testInterleaving ;
MERGE ds1 ds2;
by var1;
run;
set
语句按您列出的顺序顺序依次读取数据集。merge
语句比较集合之间的记录,并按照by
语句中变量的顺序将它们放入输出。我建议查看关于merge
语句的SAS文档,因为这是对一个非常强大的工具的非常简单的解释。最后的数据步骤完全相同。您正在执行相同的代码,无论您是否提前排序
我认为你在交错中的意思是
data testInterleaving ;
MERGE ds1 ds2;
by var1;
run;
set
语句按您列出的顺序顺序依次读取数据集。merge
语句比较集合之间的记录,并按照by
语句中变量的顺序将它们放入输出。我建议您查看有关merge
语句的SAS文档,因为这是对一个非常强大的工具的一个非常简单的解释。SAS定义为使用BY语句和SET语句。包含的链接显示两个数据集,按相同的变量排序,使用by语句和set语句生成一个数据集 SAS定义为将BY语句与SET语句一起使用。包含的链接显示两个数据集,按相同的变量排序,使用by语句和set语句生成一个数据集 正如CarolinaJay所指出的,交织是将SET
与BY
相结合。它不是合并,也不仅仅是设置前的排序
例如,让我们创建一对数据集,sashelp.class
的女性和男性成员
data male female;
set sashelp.class;
if sex='F' then output female;
else output male;
run;
proc sort data=male;
by name;
run;
proc sort data=female;
by name;
run;
data concatenated;
set male female;
run;
data interleaved;
set male female;
by name;
run;
现在,看看数据集Concatenated
是所有的雄性,然后是所有的雌性-它依次处理set
语句,在进入第二个语句之前耗尽第一个语句
交错排列的是按姓名顺序排列的,而不是按性别排列的。这是因为它按名称遍历两个(在本例中)数据集
set
,跟踪它在name
顺序中的位置。您可以添加调试语句(使用数据步调试器,或向数据步添加一个put\u all
)来查看它的工作原理。正如CarolinaJay所指出的,交错是将设置与通过组合。它不是合并,也不仅仅是设置前的排序
例如,让我们创建一对数据集,sashelp.class
的女性和男性成员
data male female;
set sashelp.class;
if sex='F' then output female;
else output male;
run;
proc sort data=male;
by name;
run;
proc sort data=female;
by name;
run;
data concatenated;
set male female;
run;
data interleaved;
set male female;
by name;
run;
现在,看看数据集Concatenated
是所有的雄性,然后是所有的雌性-它依次处理set
语句,在进入第二个语句之前耗尽第一个语句
交错排列的
是按姓名顺序排列的,而不是按性别排列的。这是因为它按名称遍历两个(在本例中)数据集set
,跟踪它在name
顺序中的位置。您可以添加调试语句(使用数据步骤调试器,或向数据步骤添加put\u all
)以查看其工作原理。交错与合并是一个不同的概念。这是从@CarolinaJay65的回答中收集的。这也是为什么我投票支持她的答案!交错是一个与合并不同的概念。这是从@CarolinaJay65的答案中收集到的。这也是为什么我投票支持她的答案!