If statement 为SAS中的第一个和最后一个创建标志

If statement 为SAS中的第一个和最后一个创建标志,if-statement,sas,If Statement,Sas,我希望能够创建一个标志,在这里称为timelag,它对于某个会话的每个第一个和最后一个条目都设置为1,由logflag指定。我有以下内容,但这给了我null数据点: data OUT.TENMAY_TIMEFLAG; set IN.TENMAY_LOGFLAG; if first.logflag then timeflag = 1; if last.logflag then timeflag = 1; run; 关于第一个。和最后一个。函数,我在这里不理解的是什么,还是我有两

我希望能够创建一个标志,在这里称为timelag,它对于某个会话的每个第一个和最后一个条目都设置为1,由
logflag
指定。我有以下内容,但这给了我
null
数据点:

data OUT.TENMAY_TIMEFLAG;
   set IN.TENMAY_LOGFLAG;
   if first.logflag then timeflag = 1;
   if last.logflag then timeflag = 1;
run;
关于
第一个。
最后一个。
函数,我在这里不理解的是什么,还是我有两个if语句

data OUT.TENMAY_TIMEFLAG;
   set IN.TENMAY_LOGFLAG;
   by logflag;
   if first.logflag then timeflag = 1;
   if last.logflag then timeflag = 1;
run;

注意:在这种情况下,TENMAY_LOGFLAG中的数据集应按
LOGFLAG
排序,以便首先创建SAS。最后。自动变量您需要使用BY语句。如果希望新变量编码为1/0,则无需If语句,只需将自动变量分配给新的永久变量即可。要使第一个和最后一个变量为1,则只需使用

data want;
  set have;
  by logflag ;
  timeflag = first.logflag or last.logflag ;
run;