複数の条件に基づいてカウンタを使用するSASの問題についてのヘルプを依頼したいと思います。複数の条件に基づいてSASにカウンタを追加する
私は営業員の顧客訪問を含むデータセットを持っています。ただし、データセットは訪問中に実行されたタスクによって編成されているため、同じ訪問のための複数のエントリを含めることができます。訪問数自体は数日間にまたがることがあります。現在、データセットは汎用IDでソートされています。
また、ここでデータセットのスクリーンショットをご覧ください:Data extract
を私ははっきりと同じ訪問に属しているエントリを特定するカウンタを導入する必要があります。
- すべての新しい従業員、顧客の組み合わせのための新しい訪問カウンター:カウンターには、以下の条件に基づくべきです。
- 日付の以下の条件が真でない場合に限り、同じ従業員 - 顧客の組み合わせに対する新しい訪問カウンタ:1)エントリは隣接日からのものであり、2)進行中の訪問のエントリに1つのエントリが埋め込まれていない
StartDateとEndDateという意味では、それぞれのエントリの分類に重要な時間範囲を定義します。
これは(上記の条件を明確にするのを助けることができる各エントリの意図された溶液およびコメントを含む)データセットである:
ID開始日終了日EmployeeNo CustomerNo対象ソリューションコメント 1 2009年1月6日2009年1月7日1 5 1隣接日 2 2009年1月7日2009年1月8日1 5 1隣接日 3 2009年1月8日2009年1月8日1 5 1隣接日 4 2009年5月1日2009年6月1日2~7隣接する2日間 5 2009年1月6日2009年7月1日2 7 2隣接日 6 05.01.2009 09.01.2009 3 1 3埋め込みエントリ 7 08.01.2009 08.01.2009 3 1 3埋め込みエントリ 8 09.01.2009 13.01.2009 4 2 4隣接日 9 13.01.2009 13.01.2009 4 2 4隣接日 10 05.01.2009 13.01.2009 5 3 5 - 11 19.01.2009 23.01.2009 6 3 6個別に従業員が異なるため 12 05.01.2009 16.01.2009 6 3 7同じ従業員と顧客、ただし隣接日はありません 13 02.02.2009 03.02.2009 7 8 8隣接日 14 03.02.2009 04.02.2009 7 8 8隣接日 15 22.09.2010 22.09.2010 8 4 9 - 16 22.09.2010 22.09.2010 8 4 9 - 17 21.09.2010 21.09.2010 9 1 10隣接日 18 21.09.2010 24.09.2010 9 1 10隣接日 19 12.01.2009 22.01.2009 10 6 11隣接日 20 23.01.2009 23.01.2009 10 6 11隣接日s 21 12.01.2009 19.01.2009 10 6 11埋め込みエントリ 22 26.01.2009 26.01.2009 2 9 12同日 23 26.01.2009 26.01.2009 2 9 12同日 24 26.01.2009 26.01.2009 2 9 12当日 25 2012年5月7日2012年5月7日1 2 13 - 26 2012年5月9日2012年5月9日1 2 14とは別に、無隣接日以降 27 2013年9月7日2013年7月9日3 10 15隣接日間 28 2013年7月10日11.07.2013 3 10 15隣接日 29 08.09.2014 08.09.2014 4 1 16隣接日 30 09.09.2014 10.09.2014 4 1 16隣接日 31 08.09。2014 08.09.2014 4 1 16隣接日 32 15.09.2014 15.09.2014 4 1 17別途隣接日がないため 33 05.09.2014 05.09.2014 5 7 18隣接日 34 04.09.2014 05.09.2014 5 7 18隣接日 35 01.06.2015 01.06.2015 7 4 19隣接日がないためカウンターが隔離されています 36 03.06.2015 03.06.2015 7 4 20隣接日がないために別のカウンター 37 11.06.2015 12.06.2015 7 4 21隣接日 38 09.06.2015 10.06.2015 7 4 21隣接日 39 09.06.2015 09.06.2015 10 4 22異なる従業員だが隣接日数が異なるため 40 11.06.2015 12.06.2015 10 4 22別々に、従業員は異なるが隣接日 41 10.06.2015 10.06.2015 10 4 22別に従業員が異なるため、隣接する日
開始する前に、EmployeeNo、CustomerNo、StartDate、およびEndDateでデータセットをソートしました。それから私は、従業員 - 顧客の条件を正しく実装するためのいくつかのSET/BYとFirst.Variableの組み合わせを使用しようとしました。しかし、私は日付の条件に苦しんでいます。
ここに私のコードの現在の状態があります。
Data Count_Visits;
Set Data;
BY EmployeeNo CustomerNo;
Retain Counter;
IF First.EmployeeNo THEN Counter +1;
ELSE IF First.CustomerNo THEN Counter +1;
Keep ID StartDate EndDate EmployeeNo
CustomerNo Counter;
Run;
アドバイスをいただければ幸いです。
よろしく、 マベ
これまでに試したコードを投稿してください。あなたのサンプルの入力と出力のデータを、画像ではなく質問の中にテキストとして投稿してください。 – user667489
データを画像ではなくテキストとして含む。テストするソリューションを試したい人は、手動でデータを入力する必要があります。 – Reeza
アドバイスをありがとう、ちょうど私のポストを編集しました。 – mabe