晚上好,我有一个关于R的问题.我有这个相机trap FT,日期和时间(DATAORA)和时间差(秒)之间的场合(时间)指定的框架.
-数据帧:
input <- structure(list(FT = structure(c(4L, 4L, 1L, 2L, 1L, 4L, 3L, 3L,
1L, 1L, 2L, 1L, 3L, 3L, 2L, 1L, 3L, 2L, 1L, 2L, 1L, 1L, 4L, 3L,
2L, 1L), levels = c("T1", "C1a", "C1b", "C1c", "T2", "C2b", "C2c",
"T3", "C3a", "C3b", "T4", "C4a", "C4b", "C4c", "T5", "C5a", "C5b",
"C5c", "T6", "C6a", "C6b", "C6c", "T7", "C7a", "C7b", "C7c",
"T8", "C8a", "C8b", "C8c", "T9", "C9a", "C9b", "C9c", "T10",
"C10a", "C10b", "C10c", "T11", "C11a", "C11b", "C11c", "T12",
"C12a"), class = "factor"), DATAORA = structure(c(1668717618,
1668717644, 1668717750, 1668717790, 1668717806, 1668719092, 1668719110,
1668719142, 1668719156, 1668719182, 1668719192, 1668719214, 1668800778,
1668800808, 1668800832, 1668800846, 1668800856, 1668800860, 1668800872,
1668800888, 1668800898, 1668800926, 1668809108, 1668809170, 1668809226,
1668809238), tzone = "", class = c("POSIXct", "POSIXt")), DIFFTIME = c(0,
26, 106, 40, 16, 1286, 18, 32, 14, 26, 10, 22, 81564, 30, 24,
14, 10, 4, 12, 16, 10, 28, 8182, 62, 56, 12)), row.names = c(NA,
-26L), class = c("tbl_df", "tbl", "data.frame"))
我想创建一个列,在该列中指定从数据帧的行识别的组/序列.我希望通过将相差不超过45秒的行分组来指定这些组/序列,但当一行具有FT的副本时,则将其插入到下一组中.如下所示
预期结果:
expected <- structure(list(FT = c("C1c", "C1c", "T1", "C1a", "T1", "C1c",
"C1b", "C1b", "T1", "T1", "C1a", "T1", "C1b", "C1b", "C1a", "T1",
"C1b", "C1a", "T1", "C1a", "T1", "T1", "C1c", "C1b", "C1a", "T1"
), DATAORA = c("2022-11-17 21:40:18", "2022-11-17 21:40:44",
"2022-11-17 21:42:30", "2022-11-17 21:43:10", "2022-11-17 21:43:26",
"2022-11-17 22:04:52", "2022-11-17 22:05:10", "2022-11-17 22:05:42",
"2022-11-17 22:05:56", "2022-11-17 22:06:22", "2022-11-17 22:06:32",
"2022-11-17 22:06:54", "2022-11-18 20:46:18", "2022-11-18 20:46:48",
"2022-11-18 20:47:12", "2022-11-18 20:47:26", "2022-11-18 20:47:36",
"2022-11-18 20:47:40", "2022-11-18 20:47:52", "2022-11-18 20:48:08",
"2022-11-18 20:48:18", "2022-11-18 20:48:46", "2022-11-18 23:05:08",
"2022-11-18 23:06:10", "2022-11-18 23:07:06", "2022-11-18 23:07:18"
), DIFFTIME = c(0, 26, 106, 40, 16, 1286, 18, 32, 14, 26, 10,
22, 81564, 30, 24, 14, 10, 4, 12, 16, 10, 28, 8182, 62, 56, 12
), SEQ = c(1, 2, 3, 3, 4, 5, 5, 6, 6, 7, 7, 8, 9, 10, 10, 10,
11, 11, 11, 12, 12, 13, 14, 15, 16, 16)), class = c("tbl_df",
"tbl", "data.frame"), row.names = c(NA, -26L))
有人能帮帮我吗?