(SAS)如何使用基于ID的数据收集日期?

时间:2018-11-15 10:59:51

标签: sas

我是SAS的新手,正在尝试编写简单的代码。

原始数据:

TableA
ID   |Date      |Type
1     20111111    A
2     20081014    C
3     20051126    A
...
100   20160421    B

我要从原始数据中按类型提取日期。

喜欢关注

Result (only picking up A and B)
ID   | DateofA  | DateofB
1    | 20111111 |    
2    |          |    
3    | 20051126 |
...
100  |          | 20160421

有人可以这样做吗?

感谢您的进阶。

1 个答案:

答案 0 :(得分:0)

有一种简单的方法可以使用Proc Transpose实现。要提取日期,您需要按ID对数据集进行排序。然后通过Id转置数据集(保持固定)。 Id语句还用于使用Type创建列。以下是我使用的方法:

data inp;
input Id 3. Date yymmdd8. type $2.;
type=strip(type);
format date date9.;
datalines;
1  20111111 A
2  20081014 C
3  20051126 A
4  20031212 B
5  20041127 C
6  20010904 A
7  20010803 C
8  20000702 B
9  19990601 A
10 19980701 C
;
run;

proc sort data=inp; by Id; run;

proc transpose data=inp
               out=outp 
               NAME=Transposed_Col
               prefix=DATEOf;
            by Id;
            id type;
run;