1

このページで私が遭遇した同様の質問があります。

Rの行間の日時の違い

ここに私のデータの非常に小さなスニペットがあります:

DT  
29/07/12 20:05:01   
29/07/12 20:20:59   
30/07/12 02:42:08 
30/07/12 02:53:17 
30/07/12 02:53:18 
30/07/12 02:53:19 

この人が尋ねたのと同じことをしたいと思います。つまり、後続の行間の R の時間差 (デルタ時間) を計算します。タイムスタンプは、日付/時刻 (日/月/年、時:分:秒) のデータ フレームに格納されます。

このコードは親切に提案されており、時間間隔が何日にもわたって壊れる場合を除いて、ほとんどの場合に機能し、その後、巨大な誤った数値が得られます (29/07/12 20:20:59 と 30/07/12 の間の 31472469 秒など)。 02:42:08。

c_time <- as.POSIXlt( mydf$c_time )
c_time <- rev( c_time )
difftime(c_time[1:(length(c_time)-1)] , c_time[2:length(c_time)])

誰か提案はありますか?

ありがとう!

4

1 に答える 1

0

それ以外の場合は、デフォルトのオプションで何が起こるかを非常に注意深く読む必要があります。

mydf <- read.table(text="c_time
29/07/12 20:05:01  
29/07/12 20:20:59  
30/07/12 02:42:08
30/07/12 02:53:17
30/07/12 02:53:18
30/07/12 02:53:19", sep=",", row.names=NULL, header=T)
c_time <- as.POSIXlt( mydf$c_time, format="%d/%m/%y %H:%M:%S")
c_time <- rev( c_time )
difftime(c_time[1:(length(c_time)-1)] , c_time[2:length(c_time)])

##Time differences in secs
##[1]     1     1   669 22869   958
于 2016-04-11T03:34:00.910 に答える