2017-06-12 4 views
-1

私はadventureworksデータセットを使用しています。注文日から発送日までの日数を取得しようとしているSAS

注文日と出荷日の間に商品を配送するためにADWがかかる日数を平均で計算する方法を探しています。

フォーマットsas date9。

例えば:

orderdate    shipdate 
01JUL2005:00:00:00 08JUL2005:00:00:00 
+0

あなたが試したコードを表示し、受け取ったエラーメッセージを説明するか、結果に満足できない理由を説明してください。また、いくつかのサンプルレコードを表示するのに役立つかもしれません。 – Quentin

+0

データproductdate; set productdate; 書式=注文日shipdate date9 .; 商品の配送=注文日 - 発送日; 実行; ERROR 388-185:算術演算子が必要です。 ERROR 76-322:構文エラーです。文は無視されます。 72 productdelivery = orderdate-shipdate; 73実行します。 –

答えて

0

ここで役立つかもしれないアプローチです。 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; 
関連する問題