ESN は、esn ごとに複数の観測値を持つ id 列であるため、esn の値が繰り返されます。特定のesnについて、最も早いサービス開始日を見つけたい(そしてそれを最初に呼び出す)、そして適切な終了日(最後と呼ばれる)を見つけたい 「最後」がどのように選択されるかについてのif/thenステートメントは正しいが、以下のコードを実行すると、次のエラーが発生します。
340 first = min(of start(*));
---
71
ERROR 71-185: The MIN function call does not have enough arguments.
ここに私が使用したコードがあります
data three_1; /*first and last date created ?? used to ignore ? in data*/
set three;
format first MMDDYY10. last MMDDYY10.;
by esn;
array start(*) service_start_date;
array stop(*) service_end_date entry_date_est ;
do i=1 to dim(start);
first = min(of start(*));
end;
do i=1 to dim(stop);
if esn_status = 'Cancelled' then last = min(input(service_end_date, MMDDYY10.), input(entry_date_est, MMDDYY10.));
else last = max(input(service_end_date, MMDDYY10.), input(entry_date_est, MMDDYY10.));
end;
run;
"esn" "service_start_date" "service_end_date" "entry_date_est" "esn_status"
1 10/12/2010 01/01/2100 10/12/2012 キャンセル
1 2009 年 5 月 2 日 2010 年 2 月 12 日 2012 年 10 月 9 日 キャンセル
1 2011/04/05 2100/03/04 2012/10/02 キャンセル
結果は first= 05/02/2009 および last=10/12/2012 である必要があります