R: 日付-時刻形式のベクトルから時間間隔を計算する

R を使って、日付-時刻形式のベクトルから時間間隔を計算する方法を調べてみました。ティック・データを使って日中の取引時間間隔を求めるのに使えそうです(というか使いたいから調べたんですが)。

# R-2.2.0 ではうまく動きませんでした。 R-2.5.1 だとうまくいったんだけど。

#datetime に "yyyymmdd HHMMSS" 形式の文字列ベクトルとして日付と時刻が記録されているものとします。
> datetime
[1] "20070801 102750" "20070801 103001" "20070801 110143" "20070801 120511"
[5] "20070802 090101" "20070802 101101" "20070802 113333" "20070802 120000"
#POSIXlt形式に変換します
> strtime2 <- strptime(datetime,"%Y%m%d %H%M%S")
> strtime2
[1] "2007-08-01 10:27:50 JST" "2007-08-01 10:30:01 JST"
[3] "2007-08-01 11:01:43 JST" "2007-08-01 12:05:11 JST"
[5] "2007-08-02 09:01:01 JST" "2007-08-02 10:11:01 JST"
[7] "2007-08-02 11:33:33 JST" "2007-08-02 12:00:00 JST"
#差分を取ります。
> dtime <- diff(strtime2)
> dtime
Time differences in mins
[1]    2.183333   31.700000   63.466667 1255.833333   70.000000   82.533333
[7]   26.450000
attr(,"tzone")
[1] "\001ST-9"
# 秒単位で表示します。
> as.numeric(dtime,units="secs")
[1]   131  1902  3808 75350  4200  4952  1587