问题非常简单,哪一个更快?
考虑到我们在set语句中使用带有两个数据集的数据步骤,并且数据集中包含相同的变量.
从我听过和读过的内容来看,如果我们使用相同的条件对它们进行子集,比如说date ="10jan2014"d,那么使用上面的语句或两个数据集中的以下数据集选项(其中=(date)结果将完全相同= "10jan2014" d)).因为在任何事物进入PDV之前执行的地方.
是对的吗?
为了更好地理解这个问题,我创建了以下代码:
假设我们有这两个数据集.
data people1;
format birth date9.;
input name $ birth :date9.;
datalines;
John 18jan1980
Mary 20feb1980
;
run;
data people2;
format birth date9.;
input name $ birth :date9.;
datalines;
Peter 18mar1980
Judas 18jan1980
;
run;
Run Code Online (Sandbox Code Playgroud)
我想用这两个创建一个新数据集,但仅适用于出生日期等于18jan1980的人.现在我可以使用where语句或where数据集选项.
使用where(数据集选项):
data everybody1;
set people1 (where=(birth="18jan1980"d))
people2 (where=(birth="18jan1980"d));
run;
Run Code Online (Sandbox Code Playgroud)
使用where语句:
data everybody2;
set people1
people2;
where birth="18jan1980"d;
run;
Run Code Online (Sandbox Code Playgroud)
现在,新数据集具有完全相同的输出.但是哪一个更快?
谢谢.
sas ×1