sas - 在 SAS 数据步骤中设置重复数据集

标签 sas

假设我有一个如下所示的 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/

相关文章:

sas - 替换 SAS 中的缺失值

sas - 在 sas 中编辑相似值

sas - sql 不尊重我的 fcmp 函数长度

loops - sas中宏的do循环的步长

layout - SAS 编辑器窗口位置

windows-xp - windows下使用SAS和mkdir创建目录结构

mysql - SAS XML 映射 - 具有多个 XML 文件

date - SAS宏变量到时间戳的转换

xml - xpath: 从 xml 中选择多个子元素属性

graph - SAS 条形图测量不同变量的百分比(一个变量在 y 轴上测量,另一个通过条内的阴影显示)