-1
私はadventureworksデータセットを使用しています。注文日から発送日までの日数を取得しようとしているSAS
注文日と出荷日の間に商品を配送するためにADWがかかる日数を平均で計算する方法を探しています。
フォーマットsas date9。
例えば:
orderdate shipdate
01JUL2005:00:00:00 08JUL2005:00:00:00
私はadventureworksデータセットを使用しています。注文日から発送日までの日数を取得しようとしているSAS
注文日と出荷日の間に商品を配送するためにADWがかかる日数を平均で計算する方法を探しています。
フォーマットsas date9。
例えば:
orderdate shipdate
01JUL2005:00:00:00 08JUL2005:00:00:00
ここで役立つかもしれないアプローチです。 SAS関数intck()
は非常に便利です!
/* Generate a dataset as described. */
data have;
do id=1 to 10000;
orderdate = today()-(ceil(ranuni(id)*1000));
shipdate = orderdate + ceil(ranuni(id)*10);
output;
end;
format orderdate shipdate date9.;
run;
/* Use intck() to count the number of days or weekdays between order and delivery dates */
data want;
set have;
weekdays_passed = intck('weekday7w',orderdate,shipdate);
abs_days_passed = intck('day',orderdate,shipdate);
run;
/* Two ways to obtain average delivery time in days. */
/*1*/
proc univariate data=want;
var weekdays_passed
abs_days_passed;
run;
/*2*/
proc sql;
select avg(weekdays_passed) as avg_weekdays_passed,
avg(abs_days_passed) as avg_abs_days_passed
from want;
quit;
あなたが試したコードを表示し、受け取ったエラーメッセージを説明するか、結果に満足できない理由を説明してください。また、いくつかのサンプルレコードを表示するのに役立つかもしれません。 – Quentin
データproductdate; set productdate; 書式=注文日shipdate date9 .; 商品の配送=注文日 - 発送日; 実行; ERROR 388-185:算術演算子が必要です。 ERROR 76-322:構文エラーです。文は無視されます。 72 productdelivery = orderdate-shipdate; 73実行します。 –