我希望能够创建一个标志,这里称为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语句?
答案 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
排序。