假设我有一个如下所示的 SAS 数据集:
id x
1 1234
2 2345
3 3456
我需要一个新的数据集,该数据集读入(比如说)2 次,并带有一个新变量来指示这是哪个“复制”:
id x rep
1 1234 1
2 2345 1
3 3456 1
1 1234 2
2 2345 2
3 3456 2
以这个确切的顺序读取数据很重要——整个初始数据集被读取一次,然后再一次,等等。
关于在数据步骤中执行此操作的有效方法有什么想法吗? (实际上我的数据集很大,需要多读几遍,想避免排序。)
我试过这个,但是新数据集中的观察顺序不是我想要的:
data foo;
set tmp; rep=1; output;
set tmp; rep=2; output;
run;
最佳答案
如果您想保持数据步骤,那么这将按照您的描述工作。
data foo;
set tmp (in=INA) tmp (in=INB);
if INA then REP=1;
if INB then REP=2;
run;
关于sas - 在 SAS 数据步骤中设置重复数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6645158/