我有一个像这样的数据集(sp是一个指标):
datetime sp
ddmmyy:10:30:00 N
ddmmyy:10:31:00 N
ddmmyy:10:32:00 Y
ddmmyy:10:33:00 N
ddmmyy:10:34:00 N
Run Code Online (Sandbox Code Playgroud)
我想用"Y"以及前一个和下一个来提取观察结果:
ID sp
ddmmyy:10:31:00 N
ddmmyy:10:32:00 Y
ddmmyy:10:33:00 N
Run Code Online (Sandbox Code Playgroud)
我厌倦了使用"滞后"并成功地用"Y"和下一个提取观察,但仍然不知道如何提取前一个.
这是我的尝试:
data surprise_6_step3; set surprise_6_step2;
length lag_sp $1;
lag_sp=lag(sp);
if sp='N' and lag(sp)='N' then delete;
run;
Run Code Online (Sandbox Code Playgroud)
结果是:
ID sp
ddmmyy:10:32:00 Y
ddmmyy:10:33:00 N
Run Code Online (Sandbox Code Playgroud)
提取先前观察的任何方法也?感谢任何帮助.
也许是一个愚蠢的问题......我得到了以下数据集:
id count
x 1
y 2
z 3
a 1
b 2
c 3
etc.
Run Code Online (Sandbox Code Playgroud)
我想要这个:
id count group
x 1 1
y 2 1
z 3 1
a 1 2
b 2 2
c 3 2
etc.
Run Code Online (Sandbox Code Playgroud)
这是我尝试的:
data macro_1; set vix.macro_spy; where macro=1;
count+1;
if count>3 then do;
count=1;
end;
group=0;
if count=1 then group+1;
run;
Run Code Online (Sandbox Code Playgroud)
但它没有用.如果我曾经获得'count = 1',如何将所有'group'添加一个?谢谢.
sas ×2