3

私はcsvファイルをに読み込もうとしているRユーザーで初心者です。私が直面している問題は、「12:23 PM」などの「hh:mm」形式の時間データを含む「TIME」という列にあります。それは簡単で、私の時間は即座に時間の値に変換されます(タイムゾーンと今日の日付は削除できます)。SASSASRas.POSIXct(df$TIME, format = "%I:%M %p")

これは、SASでこれを実装しようとした方法です:

/* firstly `rename` "TIME" to "DAY_HOUR" */
data mid.prac1;
set mid.prac1;
rename time = DAY_HOUR;
run;
/*runs successfully */

/* remove unwanted characters from DAY_HOUR */
data mid.prac2;
set mid.prac1;
DAY_HOUR = compress(DAY_HOUR, 'PMAM');
proc print; run;
/* runs successfully */

/* format hh:mm as time */
data mid.prac3;
set mid.prac2;  
informat DAY_HOUR time10.;
run;
**/*Error: ERROR 48-59: The informat $TIME was not found or could not be loaded.*/**

time informat存在しませんか? SAS の Web サイト ( http://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a000201204.htm ) でこのドキュメントを読みましたが、正しくやっていると思います。私は SAS ユニバース全体に不慣れなため、質問をしたり、サンプル データを貼り付けたりする際に慣例に従っていない場合は、申し訳ありません。

4

1 に答える 1

3

入力関数を使用して解析するだけです。

DAY_HOUR_FOR_ME = INPUT(DAY_HOUR,TIME10.);

これにより、DAY_HOUR 文字変数が DAY_HOUR_FOR_ME 数値変数に変換されます。これを時刻としてフォーマットする必要がある場合は、次のFORMATステートメントを使用します。

FORMAT DAY_HOUR_FOR_ME time10.;

わかった...

FORMAT DAY_HOUR_FOR_ME timeampm11.;

情報

入力形式は、SAS がデータを読み取るために使用されます。したがって、次のような文字列が与えられます。

09:00:00

以下を送信して、これを午前 9 時の数値表現に変換するよう SAS に依頼できます。

time_i_want = input(text,time8.);

8 は単に文字列の長さですtext。SAS は、time_i_want00:00 から 09:00 までの秒数として変数を保存します。

フォーマット

フォーマットは、使用可能なフォーマットでデータを表示するために使用されます。もし私があなたに時間を尋ねて、1960 年 1 月 1 日から何秒経ったか教えてくれたら、私は不機嫌になるでしょう。ただし、SAS が DATETIME 値を格納する方法は次のとおりです。

'01JAN1960:00:01:00'dt = 60;
'31DEC1959:23:59:30'dt = -30;

そのため、FORMATステートメントを任意のデータステップで使用して、結果のデータセット (DATAステートメントで名前が付けられているもの) に特定の形式で値を表示させることができます。

TIMEAMPM

はそのような形式の 1 つです。ただし、TIMEAMPM はINFORMATではありません。

入力形式と形式

一部の入力形式は、同等の形式に反映されます。TIME8.は一例です。informatを使用して、SAS に時間値を読み込むように指示できます。

01:00:32

これは数値として保存されます3632。次に、次のように表示されるTIME8. formatを使用してフォーマットできます。

01:00:32

于 2014-12-07T23:41:37.800 に答える