一对多合并SAS以完成整个生产线

时间:2017-01-09 03:23:32

标签: panel-data sas

我正在努力与统计程序SAS合并,希望你们能帮助我:

我有数据集,我想加入 看起来很糟糕。像这样:

输入:

 id |var1 |var2 |var3 |var4 |Var5
>--------------------------------<
 1  |A1   |B1   |C1   | --  | 0  | 
 1  |A2   |B2   |--   | D2  | 1  |

期望的输出:

 id |var1 |var2 |var3 |var4 |Var5
 >--------------------------------<
 1  |A1   |B1   |C1   |   D2|   0|
 1  |A2   |B2   |C1   |   D2|   1|

如果“Var5 = 0/1然后删除”,我试图将数据集分成两部分 声明,然后将它们合并在一起,如: 数据示例1

 id |var1 |var2 |var3 |var4 |Var5
>----------------------------<
1   |A1   |B1   |C1   | -- | 0|

数据示例2

 id |var1 |var2 |var3 |var4 |Var5

 >--------------------------------<

 1| A2    | B2  |--   |  D2|    1|

合并代码:

 data Example12;
 merge example1 (IN=X) example2;
  by persnr;
  IF x=1;
run;

但结果如下:

 id |var1 |var2 |var3 |var4 |Var5

1|A1 |B1  |C1|     D2| 0|
1|A1 |B1  |C1|     D2| 0|

任何帮助都非常感激。

1 个答案:

答案 0 :(得分:0)

如果是这样的情况,每个ID只有一个记录将具有VAR3或VAR4的非缺失值,那么您可以使用数据集选项来设置一对多合并,该合并将获得VAR3和VAR4的值合并到该ID的所有行。

首先让我们设置您的示例数据:

TXT

现在尝试合并:

data have ;
  input (id var1-var4) ($) var5 ;
cards;
1 A1 B1 C1  . 0
1 A2 B2  . D2 1
;