按SAS组添加序号
我需要按组分配序号。我曾尝试使用seq number,但一组1、2、3等获得了它。然而,我需要两组。如下例所示: 拥有: 想要:按SAS组添加序号,sas,Sas,我需要按组分配序号。我曾尝试使用seq number,但一组1、2、3等获得了它。然而,我需要两组。如下例所示: 拥有: 想要: 如果对数据进行排序,则非常简单: proc sort data=sashelp.class out=class; by sex age; run; data class; set class; by sex age; if first.sex then seqn = 0; if first.age t
如果对数据进行排序,则非常简单:
proc sort data=sashelp.class out=class;
by sex age;
run;
data class;
set class;
by sex age;
if first.sex then
seqn = 0;
if first.age then
seqn + 1;
run;
请将您的示例数据以文本形式发布,而不是以图像形式发布。无法确定如何将其作为图片中的文本输入。以下是数据:101 aaa 202 101 aaa 202 101 bbb 203 101 ccc 206 101 ddd 207 102 aaa 222 102 aaa 222 102 bbb223@Sammy请在此处查看任意数量的其他SAS问题。请编辑您的问题以添加数据,而不是在注释中。您将丢失注释中的所有格式。我把它加进去,用了不到10分钟。如果你不愿意花那么多时间来格式化你的数据,我们为什么要回答你的问题?谢谢罗伯特,我试过了你的例子。然而,它是连续的。我需要在下一组中再次从1开始。i、 e。Var1-102应该以1开头,而不是从前面的序号开始的连续数字。在您的示例中,Sex=M应该再次以1开头。@Sammy这就是by group的作用。现在它在添加第二个by group之后工作。谢谢。
Obs var1 var2 var3 seq
1 101 aaa 202 1
2 101 aaa 202 1
3 101 bbb 203 2
4 101 ccc 206 3
5 101 ddd 207 4
6 102 aaa 222 1
7 102 aaa 222 1
8 102 bbb 223 2
proc sort data=sashelp.class out=class;
by sex age;
run;
data class;
set class;
by sex age;
if first.sex then
seqn = 0;
if first.age then
seqn + 1;
run;