SAS,计算行差异

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SAS,计算行差异相关的知识,希望对你有一定的参考价值。

data test;
input ID month d_month;
datalines;
1 59 0 
1 70 11
1 80 21
2 10 0 
2 11 1
2 13 3
3 5  0
3 9  4
4 8  0
;
run;

我有两列数据ID和Month。第1列是ID,相同的ID可能有多行(1-5)。第二列是注册月份。我想创建第三列。它计算每个ID的当前月份和初始月份之间的差异。

答案

你可以这样做。

data test;
input ID month d_month;
datalines;
1 59 0 
1 70 11
1 80 21
2 10 0 
2 11 1
2 13 3
3 5  0
3 9  4
4 8  0
;
run;

data calc;
    set test;
    by id;
    retain current_month;

    if first.id then do;
        current_month=month;
        calc_month=0;
    end;

    if ^first.id then do;
        calc_month = month - current_month ;
    end;
run;

KRS

以上是关于SAS,计算行差异的主要内容,如果未能解决你的问题,请参考以下文章

为啥尽管源代码没有变化,但从一个系统到另一个系统的片段数量却有很大差异?

如何使用SAS计算Word Mover的距离

SAS数学两个表之间的差异

如何计算与 R 中相同列值关联的两个行值的差异?

仅显示语句中的差异

Lesson 3 SAS实用函数