0

私のデータは、実験の開始点から始まる時間単位で構成されています。実験には通常 1 週間以上かかるため、その時間は簡単に 24 時間を超えます。

正確には、データの形式は次のとおりです: 162:43:33.281 hhh:mm:ss.msecs 実験開始時のデータ ポイントは、ここで言及されている 3 つの時間 insetad の 1 ~ 2 つの値で構成されている可能性があります。

2 倍のポイントを差し引こうとすると、数値式にたとえば 162:43 要素があるというエラーが表示されます。これは、時間注釈で使用されているコロンを明らかに参照しています。

24 時間以上の時間値で構成される時間変数を処理できるようにする方法についてのアイデアはありますか? %H を引数として strptime 関数を試しましたが、24 時間に制限されています。

以下にデータの例を示します。

V1           V2 V3        V4                       V5             
75:45:32.487 NA 17       ####revFalsePoke is 112  TRUE
75:45:32.487 NA 17          ####totalwindow is 5  TRUE
75:46:32.713 NA  1          ####Criteria not met  TRUE
75:46:49.846 NA  6      ####revCorrectPoke is 37  TRUE
75:46:52.336 NA  9   ####revDeliberateLick is 34  TRUE
75:46:52.351 NA  9          ####totalwindow is 5  TRUE
75:46:52.598 NA  1          ####Criteria not met  TRUE
75:47:21.332 NA  6      ####revCorrectPoke is 38  TRUE
75:47:23.440 NA  9   ####revDeliberateLick is 35  TRUE
75:47:23.455 NA  9          ####totalwindow is 6  TRUE
75:47:23.657 NA  1      ####rev Criteria not met  TRUE
75:47:44.731 NA 17       ####revFalsePoke is 113  TRUE
75:47:44.731 NA 17          ####totalwindow is 6  TRUE
4

1 に答える 1

1

残念ながら、これには独自のコンバーター関数をロールバックする必要があります。タイムスタンプをdifftimeオブジェクト (場所ではなく、期間を表す) に変換することをお勧めします。次に、それらを開始日時に追加して、各タイムスタンプの最終日時に到達できます。1 つのアプローチを次に示します。

f <- function(start, timestep) {
    result <- mapply(function(part, units) as.difftime(as.numeric(part), units=units), 
                     unlist(strsplit(timestep, ':')), 
                     c('hours', 'mins', 'secs'),
                     SIMPLIFY=FALSE)
    start + do.call(sum, result)
}

start <- as.POSIXct('2013-1-1')
timesteps <- c('162:43:33.281', '172:34:28.33')
lapply(timesteps, f, start=start)
# [[1]]
# [1] "2013-01-07 18:43:33.280 EST"
# 
# [[2]]
# [1] "2013-01-08 04:34:28.32 EST"
于 2013-05-15T13:42:35.677 に答える