我有以下示例数据集,其中包含ID和6个月内的合同状态(01/2017 - 06/2017)。SAS跨多个变量的比较值
实施例的数据:
ID Month1 Month2 Month3 Month4 Month5 Month6**
12 5 5 5 5 5 5
34 5 5 6 6 5 5
56 6 6 6 -7 -7 -7
78 6 6 5 5 5 5
12 5 5 5 5 6 -7
如果状态为5的ID是有效的,如果6它取消和-7是“不能够重新激活”。
欲检查两个样的变化:从状态5更改为6 2)的ID当状态变化从5至6我希望有一个新的,其改变从6至5
1)的ID变量“churn”包含状态更改为6的月份。 对于第二组,我想要一个新变量“reactivation”,其中包含状态更改为5的月份。 如果两个组中都有一个ID 5至6至5)两个变量都应该填充。
我到目前为止是一个数组,它显示了一行中有多少状态匹配,但我没有得到下一步。这里是代码:
data want (drop= i j);
set have (obs=100);
array stat_check {*} month1-month6;
sum=0;
do i=1 to dim(stat_check)-1;
do j=i+1 to dim(stat_check);
sum=sum(sum,stat_check(i) eq stat_check(j));
end;
end;
run;
在此先感谢!
你到目前为止尝试过什么?请将您的数据发布为文字而不是图片,否则您会要求人们输入数据并解决您的问题。 – Reeza
您需要为6列声明一个数组,当条件满足时,使用'vname'函数获取正确的变量名称。正如Reeza所建议的那样,如果你遇到困难,我会很乐意为你提供进一步的帮助,但前提是你走得更远。 –
感谢您的提示,这是我在这里的第一篇文章,只是使用了截图工具。我将数据行添加为文本和目前为止的代码。 – Jayque86