在SAS中为第一个和最后一个创建标志

时间:2016-07-19 14:42:04

标签: if-statement sas

我希望能够创建一个标志,这里称为timeflag,对于某个Session的每个第一个和最后一个条目设置为1,由logflag指定。我所拥有的是以下内容,但这为我提供了null个数据点:

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

我在这里不理解的first.last.函数有什么用,或者我有2个if语句?

2 个答案:

答案 0 :(得分:2)

让SAS创建FIRST。最后。您需要使用BY语句的自动变量。如果希望新变量编码为1/0,则不需要IF语句,只需将自动变量赋值给新的永久变量即可。要为第一个和最后一个创建一个变量,那么只需使用OR

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

答案 1 :(得分:1)

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

P.S。在这种情况下,数据集IN.TENMAY_LOGFLAG应按logflag排序。