2012-03-06 142 views
0

我想为每四个观测值分配相同的编号。例如,如果我有以下数据SAS,将相同的编号分配给特定的观察

age marital gender id 
45 1 0 1 
33 1 1 1 
68 0 1 1 
27 1 0 1 
43 0 0 2 
37 0 1 2 
19 1 1 2 
40 1 1 2 
25 1 0 3 
38 1 1 3 
57 0 0 3 
50 1 0 3 
51 1 1 4 
44 0 1 4 
69 1 0 4 
39 0 1 4 

最后一列id是我想要生成的东西。 另外,数据集有500,000+个观测值。

在此先感谢。

回答

2

使用整数函数和内置_n_变量(递增对于每个观测):

id = int((_n_-4)/4)+1; 
+0

当我使用建议的代码,前七个观测被分配1,然后每四个观察值被分配到相同的数字。 – Ken 2012-03-06 21:53:37

+0

没关系,我解决了这个问题。谢谢! @itzy – Ken 2012-03-06 22:12:21

3

稍微更紧凑:

id = ceil(_n_/4);