我有一个数据集,其中包含数千行,每个人都为其分配了ClientID。我想使用ClientID变量来生成一个从1开始的新ID变量。有些ClientID是重复的,所以我想确保重复的ClientID具有相同的ID号。客户端ID是字符串,我的数据必须按TimeStamp排序。
我的数据看起来像:
ClientID TimeStamp
15137.45692 15/03/2021
10489.15789 03/02/2021
14143.96745 01/01/2021
15137.45692 15/01/2021
15137.45692 27/02/2021
14143.96745 08/03/2021
我希望它看起来像:
ID ClientID TimeStamp
1 14143.96745 01/01/2021
2 15137.45692 15/01/2021
3 10489.15789 03/02/2021
2 15137.45692 27/02/2021
1 14143.96745 08/03/2021
2 15137.45692 15/03/2021
我该怎么做?
我会用excel来做,但我有超过25万行的数据,excel不断崩溃。
感谢
以下语法创建ID=1,然后仅在新ClientID:的情况下添加1
sort cases by ClientID.
compute ID=1.
if $casenum>1 ID=lag(ID)+(ClientID<>lag(ClientID)).
exe.
EDIT:
这里有另一个使用rank
函数的好方法:
RANK VARIABLES=ClientID (A) /RANK /PRINT=NO /TIES=CONDENSE.