0
私の目的は、フォローアップがあるかどうかを調べることです。まず、objidはすべてR1
〜R14
と比較する必要があります。 objidがRX
に等しい場合は、R(X+1)
にフォローアップがあるかどうかチェックしてください。合計で最大R
は14です。objid=R14
の場合、フォローアップはありません。たとえば、最初のレコードのobjidは1111です。これはR1と同じであり、R2
がないため、R2
というフォローアップがあります。 2番目のレコードR1=R14
ですが、フォローアップはありません。マクロ出力なしでループする
私はコードを書きましたが、出力はありません。問題がどこにあるのか分かりません。
objid R1 R2 ... R14
----- ---- ---- ----
1111 1111 1112 ...
2222 1101 2201 ... 2222
...
4567 5234 4567 ...
コード:
%macro rr(n=);
data linkrr;
set linkrev_tricup;
%do i=1 %to &n;
%if %eval(r&i.=objid) %then %do;
%let j=%eval(&i.+1);
%if %eval(r&j.>0) %then %eval(index_rr=1);
%else %eval(index_rr=0);
output;
%end;
%end;
run;
%mend rr;
%rr(n=14);
私はOPを読んで、彼女は2番目のレコードでindex_rr = 0としたいと思っていますので、最後にIF文を削除します。 – Quentin
私はその質問のその部分を本当に理解していませんでした。その場合、 'if R [dim(R)] eq objid then index_rr = 1;'部分を除いてください。 – Jetzler