2017-12-05 35 views
-2

SASで1か月の日数を取得しようとしています。私が持っている日付形式はyyyymm(例:201701)です。月の日数を記録したいと思います。データは月単位で繰り返されます(201701,201702 ...など)。私はEOMONTHと一緒にDay関数を使用しようとしましたが、SASは20170年のSAS日付を取得します。私はSASコーディングを初めて利用しています。SASで1ヶ月の日数をカウントする

+1

これはまったく明確ではありません。あなたは何を持ち、何が必要ですか?ちょうどその2017年1月31日がありますか?それとも、あなたのデータに何とか関係がありますか?あなたはもっと多くの情報とあなたが試みたものを投稿する必要があります。私はEOMONTHがどのようなものか分かりません。 – Reeza

答えて

0

SASの日付の値は、1960年1月1日以降の日数の値を持つ数値型です。

まず、変数を表す日付がどのような種類の値であるかを理解する必要があります。 はそれが:EOMONTHが文字である場合は値100 *年+月

としてエンコードされた日付で意味の場所YYYYMM

  • 数値型の桁の文字で

    • 文字の種類、あなたがする必要があります。 1日を含むSAS日付値に変換します。 「月」値については、その日は、通常、例えば1に設定されています

      data _null_; 
          myDateString = '201701'; 
          * note the ||'01' that makes myDate be the first of the month; 
          myDate = input (trim(myDateString)||'01', yymmdd8.); 
          format myDate yymmd.; 
          put myDate=; 
          put myDate= 12.; * Show in LOG the date as number of days from reference; 
      run; 
      ----- LOG ----- 
      myDate=2017-01 
      myDate=20820 
      

      時にはあなたが数値であると見たときYYYYMMのように表示されるようにエンコードされた日付を表すデータを取得します。これらの値は、SASの日付値に変換する必要があります。例:

      data have; 
          myDateNumber = 201701; 
          * note the , 1 that makes myDate be the first of the month; 
          myDate = mdy (mod(myDateNumber,100), 1, myDateNumber/100); 
          format myDate yymmd.; 
          put myDate=; 
          put myDate= 12.; * What date value is 'unformatted' is the number of days from reference; 
      run; 
      ----- LOG ----- 
      myDate=2017-01 
      myDate=20820 
      

      日付の文字または数値表現をSASの日付値に変換する他の方法もあります。 SASで変数を表示しているときは、変数のタイプとフォーマットがビューアによって適用されていることを理解する必要があることに注意してください。

      SASの日付値を取得したら、SASインターバル機能INTCKおよびINTNXを使用して、その日付の月の日数を計算できます。

      この式は、日付の値の月の日に関係なく機能します。

  • +0

    リチャードに感謝します。私のデータは数字で表現されていて、あなたのフォーミュラは私のために働いた。あなたの助けを本当に感謝しながら私は私の質問が少し漠然とした多くの情報なしで漠然としていることに気づいた!!あなたは、ロジックをよく理解するのに非常に役立っていました。 – user9058407

    +0

    また、 'yymmn6.'情報を使って数値を日付に変換することもできます。 'myDate = input(put(myDateNumber、6。)、yymmn6。);'。これはデフォルトの月の1日目です – Longfish

    関連する問題