我正在尝试比较不同的趋势,因为它们与同一类型的事件相关。我已经标记了该事件,并将其视为时间0。每行的时间戳增加1秒。以下是一些示例数据:
structure(list(timestamp = structure(c(1589359698, 1589359699,
1589359700, 1589359701, 1589359702, 1589359703, 1589359704, 1589359705,
1589359706, 1589359707, 1589359708, 1589359709, 1589359710, 1589359711,
1589359712, 1589359713, 1589359714, 1589359715, 1589359716, 1589359717,
1589359718, 1597392790, 1597392791, 1597392792, 1597392793, 1597392794,
1597392795, 1597392796, 1597392797, 1597392798, 1597392799, 1597392800
), tzone = "UTC", class = c("POSIXct", "POSIXt")), time_from_event= c(NA,
NA, NA, NA, NA, 0, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, NA, NA, NA, 0, NA, NA, NA, NA, NA), measurement = c(11.27387375,
11.27387375, 11.27387375, 11.27387375, 11.27387375, 11.27387375,
11.27387375, 11.27387375, 11.3522525, 11.27387375, 11.27387375,
11.27387375, 11.27387375, 11.27387375, 11.41321375, 11.3174175,
11.3174175, 11.3174175, 11.195495, 11.30870875, 11.2129125, 11.3,
11.404505, 11.23903875, 11.23903875, 11.23903875, 11.3522525,
11.27387375, 11.27387375, 11.27387375, 11.27387375, 11.27387375
)), row.names = c(NA, -32L), class = c("tbl_df", "tbl", "data.frame"
))事件之前的所有内容都应标记为递增的负数,即事件前1s的读数应为-1,事件前2s的读数应为-2,依此类推。
事件之后的所有内容都应该用递增的数字进行标记,即事件后1s为1,事件后2s为2,依此类推。
这两个不同的日子被单独分组。最终结果如下所示,其中每天都有标记为事件前后的行:
timestamp | time_from_event | reading
--------------------------------------------------
2020-05-13 08:48:18 | -5 | 11.27387
2020-05-13 08:48:19 | -4 | 11.27387
2020-05-13 08:48:20 | -3 | 11.27387
2020-05-13 08:48:21 | -2 | 11.27387
2020-05-13 08:48:22 | -1 | 11.27387
2020-05-13 08:48:23 | 0 | 11.27387
2020-05-13 08:48:24 | 1 | 11.27387
2020-05-13 08:48:25 | 2 | 11.27387
2020-05-13 08:48:26 | 3 | 11.35225
2020-05-13 08:48:27 | 4 | 11.27387 发布于 2020-10-13 08:41:24
按时间戳转换后的‘Date’分组,取时间戳与'time_from_event‘中'0’值的位置索引之间的差值
library(dplyr)
df1 %>%
group_by(day = as.Date(timestamp)) %>%
mutate(time_new = row_number() - match(0, time_from_event)) %>%
ungroup-output
# A tibble: 32 x 5
# timestamp time_from_event measurement day time_new
# <dttm> <dbl> <dbl> <date> <int>
# 1 2020-05-13 08:48:18 NA 11.3 2020-05-13 -5
# 2 2020-05-13 08:48:19 NA 11.3 2020-05-13 -4
# 3 2020-05-13 08:48:20 NA 11.3 2020-05-13 -3
# 4 2020-05-13 08:48:21 NA 11.3 2020-05-13 -2
# 5 2020-05-13 08:48:22 NA 11.3 2020-05-13 -1
# 6 2020-05-13 08:48:23 0 11.3 2020-05-13 0
# 7 2020-05-13 08:48:24 NA 11.3 2020-05-13 1
# 8 2020-05-13 08:48:25 NA 11.3 2020-05-13 2
# 9 2020-05-13 08:48:26 NA 11.4 2020-05-13 3
#10 2020-05-13 08:48:27 NA 11.3 2020-05-13 4
# … with 22 more rowshttps://stackoverflow.com/questions/64326917
复制相似问题