有这个代码
data &OUT_DATA.;
set &IN_DATA_ORIGINAL_RISK_SCEN.
work.RISK_SCENARIOS_FROM_CF_TO_LOAD(drop=REPORTING_DT
HORIZON_TIME_PERIOD_CNT);
run
我理解的是,它通过将OUT_DATA
与DATA_ORIGINAL_RISK_SCEN
连接来创建表RISK_SCENARIOS_FROM_CF_TO_LOAD
。
但是这两个表的变量是相同的,所以我不理解它的作用,假装在OUTPUT
表上的值是RISK_SCENARIOS_FROM_CF_TO_LOAD
的值。
答案 0 :(得分:1)
set
语句中的两个数据集将这些行附加在一起 - 因此,如果第一个上有1000行而第二个上有400行,则最终输出上会有1400行。如果它们具有相同的变量,则最终具有该组变量;如果还有其他变量,那么 数据集上的所有变量都会显示在最终变量上,并且会填充来自没有该变量的数据集的行的缺失。
例如:
data class;
set sashelp.class
sashelp.class(where=(sex='M'));
run;
将男性追加到完整的类数据集中,因此它们在最终输出中存在两次;总共29行(主数据集19个,男性10个),相同的5个变量。
data class_cars;
set sashelp.class
sashelp.cars
;
run;
此数据集没有任何意义,但它显示了当您有两个具有不同变量的数据集时会发生什么。
如果您只看到一个数据集中的行,那么您要么有一些条件要删除行,要么在其中一个输入数据集中没有行。