SAS,计算行差
SAS, calculate row difference
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 和月份。第 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;
克星
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 和月份。第 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;
克星