说我有这种格式的一组数据:
ID Product account open date
1 A 20100101
1 B 20100103
2 C 20100104
2 A 20100205
2 D 20100605
3 A 20100101
我想创建一个列来捕获打开的产品序列,以便表格如下所示:
ID First Second third
1 A B
2 C A D
3 A
我知道我需要为每个ID创建一个索引,以便我可以在之后转置数据:
ID Product account open date sequence
1 A 20100101 1
1 B 20100103 2
2 C 20100104 1
2 A 20100205 2
2 D 20100605 3
3 A 20100101 1
根据我在do循环中的有限知识,我想我需要写下这样的东西:
如果first.ID而不是last.ID则n = 1,而ID不是n + 1
这样的事情。任何人都可以帮助我使用确切的语法吗?我尝试使用谷歌搜索相似的代码,并没有太多的运气。
谢谢!
答案 0 :(得分:2)
我按ID排序,然后按日期并使用proc转置以简化。这是一个例子:
data prod;
input ID Product $ Open_DT :yymmdd8.;
format open_dt date9.;
datalines;
1 A 20100101
1 B 20100103
2 C 20100104
2 A 20100205
2 D 20100605
3 A 20100101
;
run;
proc sort data=prod;
by ID Open_DT;run;
proc transpose data=prod
out=prod_trans(drop=_name_)
prefix=ITEM;
by id;
var Product;
run;
proc print data=prod_trans noobs;
run;