プロが教える店舗&オフィスのセキュリティ対策術

以下のようなデータがあった場合
時間の間隔を出す場合どのようにすればいいのでしょうか?
日数ではDATDIFを使えばいいのですが
時間の場合はどうすればいいのでしょうか?

name,time
sato,2005/06/10 21:00:05
sato,2005/06/10 21:30:05
sato,2005/06/10 21:40:05
suzuki,2005/06/10 20:00:00
suzuki,2005/06/10 20:10:00
suzuki,2005/06/10 20:30:00
tanaka,2005/06/10 21:00:05
tanaka,2005/06/10 21:13:05
tanaka,2005/06/10 21:10:05
tanaka,2005/06/10 21:30:05
tanaka,2005/06/10 21:31:05

A 回答 (2件)

以下のようにすればよいです.


21:00:05 のデータに対しては time は 75605,21:30:05 に対しては 77405 が入ります.

DATA data1;
INPUT name$ date time;
INFORMAT date YYMMDD10. time TIME8.;
CARDS;
sato 2005/06/10 21:00:05
sato 2005/06/10 21:30:05
sato 2005/06/10 21:40:05
suzuki 2005/06/10 20:00:00
suzuki 2005/06/10 20:10:00
suzuki 2005/06/10 20:30:00
tanaka 2005/06/10 21:00:05
tanaka 2005/06/10 21:13:05
tanaka 2005/06/10 21:10:05
tanaka 2005/06/10 21:30:05
tanaka 2005/06/10 21:31:05
RUN;
    • good
    • 0
この回答へのお礼

ソースコードまで丁寧に教えていただき
ありがとうございました。

SASは他の言語と違い書籍も少なく
自分で勉強するのが難しいです。
インターネットで探してもSASに関するサイトは
見当たりません。
失礼ですがFumisannariさんはどのように勉強されたのでしょうか?
参考にできる本、サイトがありましたら
教えていただけるとありがたいです。

では、また何かありましたら
宜しくお願いいたします。
今回は本当にありがとうございました。

お礼日時:2005/06/16 12:21

どこの「間隔」を求めたいのでしょうか?



例えば,21:00:05 と 21:30:05 の間隔を求めたいのだとします.
適切な入力フォーマットでデータを読み込んであれば,それらの「時刻」は SAS データセット内部では秒として保存されています.したがって,単純に引き算を実行すれば,1800 という答えが得られます.
後は必要に応じて 60 で割って 30 (分) という答えを得たり,さらに 60 で割って,0.5 (時間) とすればよいです.

この回答への補足

返信ありがとうございます。
引き算して求めるんですね。

間隔はFumisannariさんがおっしゃるとおりの間隔です。

>適切な入力フォーマットでデータを読み込んであれば
「2005/06/10 21:00:05」の場合の入力フォーマットはどのように記述すればよいのでしょうか
教えていただけるととても助かります。
宜しくお願いいたします。

補足日時:2005/06/15 20:45
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!