在sas中计算变量

时间:2015-04-12 00:26:12

标签: count sas

我想为另一个变量(局)设置一个计数变量。另外,我希望每次输入变量从1变为2时,count变量都会重置。例如

innings  count
1         1
1         2
1         3
1         4
1         5
1         6
1         7
1         8
1         9
1         10
2         1
2         2
2         3
2         4
2         5
2         6
2         7
2         8
2         10
2         11
2         12
1         1
1         2
1         3
1         4
1         5
1         6

我尝试过以下代码:

data T20_SCORECARD_data_innings;
   set T20_SCORECARD_data_innings;
   count + 1;
   by innings;
   if first.innings then count = 0;
run;

但它似乎不起作用。

非常感谢任何帮助。

ANKIT

2 个答案:

答案 0 :(得分:2)

如果您的数据确实没有排序,只是简单地分组到1和2,那么您可以使用您的代码,但将NOTSORTED选项添加到BY语句中。

data T20_SCORECARD_data_innings;
  set T20_SCORECARD_data_innings;
  by innings NOTSORTED;
  count + 1;
  if first.innings then count = 0;
run;

答案 1 :(得分:1)

在使用by子句的数据步骤中,需要对数据进行排序。在你的情况下,它不是。如果您更改数据,那么第三组(第二组1)的前三名应该可以使用。