【发布时间】:2024-01-23 23:56:01
【问题描述】:
我有一个这样的数据表:
timestamp Value
19-07-2019 02:46 5
19-07-2019 02:47 8
19-07-2019 02:48 2
19-07-2019 02:49 4
19-07-2019 02:50 7
19-07-2019 02:51 0
19-07-2019 02:52 3
19-07-2019 02:53 3
19-07-2019 02:54 10
19-07-2019 02:55 1
19-07-2019 02:56 3
19-07-2019 02:57 10
19-07-2019 02:58 3
19-07-2019 02:59 0
19-07-2019 03:00 9
19-07-2019 03:01 7
19-07-2019 03:02 10
19-07-2019 03:03 5
19-07-2019 03:04 10
19-07-2019 03:05 0
我想知道从 7 开始值何时达到 10。 一旦值为 7,则持续时间必须从 7 到达到 10。即使低于 7 也可以……前 7 到前 10。如果不存在 7 并且存在 7.1 或以上 7 值,考虑到它越过了 7 。 10 点也是如此。
我累了:
DT[, group_id := rleid((value >7 & value <10 )) ][]
z<-DT[(value >7 & value <10 ), ][, .(start = min(timestamp),end = max(timestamp),
duration = as.numeric(max(timestamp)-min(timestamp),units='mins')),
by = .(group_id)][,group_id := NULL]
但它只会在 7 到 10 之间给出持续时间..而不是从 7 到 10
【问题讨论】:
标签: r dataframe datatable rstudio