【发布时间】:2017-09-14 18:42:40
【问题描述】:
我使用 SAS EG 并且有一个如下所示的数据集:
CLIENT_ID Segment Yearmonth
XXXX A 201305
XXXX A 201306
XXXX A 201307
YYYY A 201305
YYYY A 201306
YYYY B 201307
我想要一个分配给新列的数字的输出,该数字在新帐户存在时重置:
CLIENT_ID Segment Yearmonth New_Variable
XXXX A 201305 1
XXXX A 201306 2
XXXX A 201307 3
YYYY A 201305 1
YYYY A 201306 2
YYYY B 201307 3
这是第一个问题,我用这段代码解决了这个问题:
PROC SORT DATA= GENERAL.HISTORICAL_SEGMENTS;
by Client_ID;
RUN;
data HISTORICAL_SEGMENTS2;
SET GENERAL.HISTORICAL_SEGMENTS;
count + 1;
by Client_ID;
if first.Client_ID then count = 1;
run;
我想创建第二个数据集,我想看看是否有办法仅在段发生变化时获取段:例如从上面的
CLIENT_ID Segment Yearmonth New_Variable
YYYY A 201305 1
YYYY B 201306 2
任何帮助将不胜感激。谢谢。
【问题讨论】:
-
请在问题中添加您尝试过的代码(即使它不起作用)。看到你是如何处理它的,通常会帮助其他人帮助你学习,而不仅仅是给你一个答案。您是否熟悉 RETAIN,并在 DATA 步骤中按组处理(例如 first.Account 和 last.Account)?
标签: sas sas-macro enterprise-guide