2016-03-25 66 views
2

私の日付に先行ゼロ(25.3.2016のような)がない入力ファイルがありますが、それらをDDMMYYYYP10という形式に変換したいと思います。SASの日付形式d.m.yyyyをdd.mm.yyyyに変換する方法は?

私のためにできる形式、インフォメーション、機能などはありますか?

SAS Enterprise Guide 4.3を使用しています。

+0

あなたは形式を変更しようとしたことがありますか? – Reeza

答えて

0

私の入力はデータセットですので、これは私の仕事:

data dates; 
    set My_data; 
     format date1 DDMMYYP10.; 
     date1 = input (date, anydtdte10.); 

run; 
+1

そのような場合、Date変数には実際にはSASの日付が表示されませんでした。これはテキスト値の文字変数で、INPUT関数を使用してそのテキスト値を数値の日付値に変換しています。 – Quentin

0

SASは、日付を「SAS日付」として保存するように設計されています。これは、1960年1月1日からの日数である数値変数です。SA​​S日付があると仮定します日付)、この変数に使用される形式を変更するのは簡単です。それが印刷されたときに編集

36 data want; 
37  mydate="1Mar2016"d; 
38  put mydate=; 
39  format mydate ddmmyyp10.; 
40 run; 

mydate=01.03.2016 

など、これは実際に値を変換しません、それだけで値を表示するために使用される形式を変更することに注意してください:私はあなたの質問を再読し、多分あなたは、SASデータセットを持っていない実現代わりにテキストファイルがありますか?もしそうなら、あなたはddmmyy10インフォーマットを使って25.3.2016のような日付を読むことができます。以下は、テキストファイルから値を読み込むことddmmyy10 informatを使用し、次にddmmyyp10形式は、ピリオド区切りでそれをフォーマットする:

115 data want; 
116 input mydate ddmmyy10.; 
117 put mydate=; 
118 format mydate ddmmyyp10.; 
119 cards; 

mydate=01.03.1960 
NOTE: The data set WORK.WANT has 1 observations and 1 variables. 

121 ; 
122 run; 
2

本当に必要な「形質転換」はありません。あなたが必要とする2つのだけのものがある:

  1. SASが適切に出力形式データ
  2. を読めば、日付を認識するための適切なinformat(あなたのケースでは、ANYDTDTE10.を行う必要があります)(あなたがDDMMYYP10.を求めています日付を表示するには、上記のインフォーマットで正しくインポートされている必要があります。

イラスト:

data dates; 
    format mydate DDMMYYP10.; 
    input mydate ANYDTDTE10.; 
    datalines; 
25.3.2016 
run; 

proc print;run; 

結果:もちろん

Obs mydate 
1 25.03.2016 

あなたが外部データを読んでいる場合は、INFILEの文ではなく、DATALINESを必要とすることがあります(私はあなたであると仮定ケース)が、結果は同じになります。

出力形式はで、形式はです。基礎となるデータに影響を与えずに自由に変更することができます。したがって、ここの鍵は実際にはinfoです。

関連する問題