【发布时间】:2020-01-14 11:43:58
【问题描述】:
试图用谷歌搜索它并找不到任何东西(也许是我完全是菜鸟)。
我想在我的数据集中创建一个名为 step 的新变量,它从 1 开始计数,直到 customerid 发生变化。
示例: 这是我得到的表:
Customerid Page step
1 Frontpage
1 Middlepage
2 Frontpage
2 Middlepage
2 Lastpage
3 Frontpage
3 Middlepage
我想要什么:
Customerid Page step
1 Frontpage 1
1 Middlepage 2
2 Frontpage 1
2 Middlepage 2
2 Lastpage 3
3 Frontpage 1
3 Middlepage 2
我现在得到的:
Customerid Page step
1 Frontpage 1
1 Middlepage 2
2 Frontpage 3
2 Middlepage 4
2 Lastpage 5
3 Frontpage 6
3 Middlepage 7
我尝试在 sas 中执行此操作,但没有成功:
data nordea_dk1;
set nordea_dk;
by custerimd;
if first.customerid then do;
step=1;
step + 1;
output;
run;
【问题讨论】:
-
确保新变量
STEP不存在于您的输入数据集中。这将阻止这些值被保留。 -
它没有,只是为了示例,但仍然不起作用
-
发布显示问题的示例数据。
-
发表于:“我得到了什么”
-
您的程序会生成此错误消息。
ERROR 117-185: There was 1 unclosed DO block.如果我修复它,那么它会生成此错误。ERROR: BY variable custerimd is not on input data set...也许您一直在查看 SAS 实际可以运行的代码版本的输出数据的旧版本?
标签: sas