1

電圧測定値の大きなデータ セットがあります。電圧がしきい値を超えるさまざまな期間の頻度を特定したいと考えています。したがって、電圧のサブセット (>=2V) を使用して、電圧が 1 秒のサンプリング間隔に基づく一連の期間の長さを計算したいと考えています。以下のサンプルデータを参照してください。

library(chron)
volts=c(2,3,4,5,6,2,2,3,4,5,5,5)
t=chron(times=c("23:03:20", "23:03:21", "23:03:22", "23:03:23","23:03:24","23:03:25","04:01:50","04:01:51","04:01:52","04:01:53","04:01:54","04:01:55"))
data=data.frame(volts,"time"=t)

この例には、23:03:20 から 23:03:25 までと 04:01:50 から 04:01:55 までの 2 つの系列があります。

これらの期間の持続時間と膨大な量のデータの平均電圧を計算したいと考えています。これらの期間が離散的であると見なされる期間は 30 秒です。私の答えは動物園にかかっているのではないかと思います。提案を歓迎します。

4

3 に答える 3

2

出力で @BenBolker と同じ名前を使用:

library(data.table)
dt = data.table(data)

dt[, time := as.ITime(time)] # easier to deal with

dt[, list(meanvolts = mean(volts), duration = time[.N] - time[1], n = .N),
     by = list(period = 1 + c(0, cumsum(abs(diff(time)) >= 30)))]
#   period meanvolts duration n
#1:      1  3.666667 00:00:05 6
#2:      2  4.000000 00:00:05 6
于 2013-07-30T21:43:01.203 に答える