次の異なる形式の日付値を使用してデータセットを作成できますか?
29 JUN 66
July0100
19940421
質問の例から、はい、これらすべての値を含む変数を作成できますが、文字変数である必要があります。それはデートではありません。同じ変数の異なるオブザベーション (行) が異なる SAS 形式を持つことができるかどうかを尋ねる場合、直接的な答えは「いいえ」です。
重要なことは、SAS 日付変数は 1960 年 1 月 1 日からの日数に対応する単なる数値であることです。SA S 日付は、 を使用してさまざまな方法で表示formats
できます。ただし、aformat
はデータ値自体には影響しません。説明のために、次のプログラムを実行して、現在のシステム日付を 3 つの異なる形式で出力します。
data _null_;
today_is = today();
put 'Using mmddyy10.: ' today_is mmddyy10.
/ 'Using yymmdd10.: ' today_is yymmdd10.
/ 'Using worddate.: ' today_is worddate.;
run;
さらに説明するために、質問の 3 つの日付スタイルを使用して文字変数を作成する例を次に示します。
data _null_;
length your_column $13;
/* 29 JUN 66 Assuming June 29, 1966 */
test_date = '29jun1966'd;
your_column = put(day(test_date),z2.) || ' '
|| upcase(put(test_date,monname3.)) || ' '
|| put(test_date,year2.);
put test_date= @18 your_column=;
/* July0100 Assuming July 1, 2000 */
test_date = '1jul2000'd;
your_column = put(test_date,monname.) || put(test_date,year.);
put test_date= @18 your_column=;
/* 19940421 Assuming April 21, 1994 */
test_date = '21apr1994'd;
your_column = put(test_date,yymmddn8.);
put test_date= @18 your_column=;
run;
質問の最初の 2 つの値には、自然な SAS 形式がないことに注意してください。