小编Fre*_* Ng的帖子

阅读上一次和下一次观察

我有一个像这样的数据集(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)

提取先前观察的任何方法也?感谢任何帮助.

sas

5
推荐指数
1
解决办法
7563
查看次数

算上sas

也许是一个愚蠢的问题......我得到了以下数据集:

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

4
推荐指数
1
解决办法
615
查看次数

标签 统计

sas ×2