考虑以下示例:
/* Create two not too interesting datasets: */
Data ones (keep = A);
Do i = 1 to 3;
A = 1;
output;
End;
run;
Data numbers;
Do B = 1 to 5;
output;
End;
Run;
/* The interesting step: */
Data together;
Set ones numbers;
if B = 2 then A = 2;
run;
因此,数据集包含一个变量 A 和 3 个观察值,所有变量和数据集编号包含一个变量 (B) 和 5 个观察值:数字 1 到 5。我希望生成的数据集一起有两列(A 和 B)和 A要读取的列(垂直) 1, 1, 1, . , 2, . , . , .
但是,在执行代码时,我发现 A 列显示为 1, 1, 1, 。, 2, 2, 2 , 2
显然,在第五次观察中创建的 2 一直保留下来,没有明显的原因。这里发生了什么?
(为了完整起见:当我将最后一个数据步骤分成两部分时,如下所示:
Data together;
set ones numbers;
run;
Data together;
set together;
if B = 2 then A = 2;
run;
它确实符合我的预期。)