SAS中文论坛

标题: 求助:如何将同一编号的两行数据,相同变量第一行值减去第二行的值? [打印本页]

作者: shiyiming    时间: 2009-6-18 14:53
标题: 求助:如何将同一编号的两行数据,相同变量第一行值减去第二行的值?
data a;
  input code group  time;
cards;
  1  1  2.5
  1  0  4
  2  1  3
  2  0  5
  3  1  3.5
  3  0  7
  ;
  run;

我想对code相同的两行变量,用第二行的time值减去第一行的time值生成一个新的变量,即对相同code变量,group=0 的那一行的time减去group=1的那一行的time值生成一个新变量,该如何写程序,请大家帮忙,谢谢啦。
作者: Qiong    时间: 2009-6-18 15:21
标题: Re: 求助:如何将同一编号的两行数据,相同变量第一行值减去第二行的值?
lag函数
[code:3q3ua16m]data temp;
set a;
code_lag=lag(code);
time_lag=lag(time);
if code=code_lag then time=time-time_lag;
drop code_lag time_lag;
run;[/code:3q3ua16m]
作者: shiyiming    时间: 2009-6-18 15:23
标题: Re: 求助:如何将同一编号的两行数据,相同变量第一行值减去第二行的值?
proc sort data=a; by code group; run;

data b;
        set a;
        by code group;
        retain a;
        if first.code then a=time;
        else a=a-time;
        if last.code then output;
run;
作者: shiyiming    时间: 2009-6-18 16:47
标题: Re: 求助:如何将同一编号的两行数据,相同变量第一行值减去第二行的值?
vicky1020 和godensjj的程序都能解决,真是高手啊,多谢多谢。  <!-- s:D --><img src="{SMILIES_PATH}/icon_biggrin.gif" alt=":D" title="Very Happy" /><!-- s:D -->




欢迎光临 SAS中文论坛 (https://mysas.net/forum/) Powered by Discuz! X3.2