【发布时间】:2021-03-22 02:59:11
【问题描述】:
如何根据满足以下条件的发生日期来分配事件编号。
- 如果事件至少连续 3 天(或更长时间)发生,则分配事件编号
e1等等,并与原始数据框发生变异(加入)。 - 如果不是连续 3 天出现,分配
NA并使用原始数据框进行变异。 在时间序列dts我怎样才能实现它。输出数据框类似于dts_output(手动完成)。
dts<-structure(list(Date = structure(c(16442, 16443, 16444, 16445,
16484, 16485, 16486, 16487, 16488, 16489, 16490, 16491, 16492,
16493, 16499, 16500, 16511, 16512, 16513), class = "Date"), cct = c(11,
11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
11, 11)), row.names = c(NA, -19L), class = c("tbl_df", "tbl",
"data.frame"))
dts
#Expected output
dts_output<-structure(list(Date = structure(c(16442, 16443, 16444, 16445,
16484, 16485, 16486, 16487, 16488, 16489, 16490, 16491, 16492,
16493, 16499, 16500, 16511, 16512, 16513), class = "Date"), cct = c(11,
11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
11, 11), event = c("e1", "e1", "e1", "e1", "e2", "e2", "e2",
"e2", "e2", "e2", "e2", "e2", "e2", "e2", NA, NA, "e3", "e3",
"e3")), row.names = c(NA, -19L), spec = structure(list(cols = list(
Date = structure(list(), class = c("collector_character",
"collector")), cct = structure(list(), class = c("collector_double",
"collector")), event = structure(list(), class = c("collector_character",
"collector"))), default = structure(list(), class = c("collector_guess",
"collector")), skip = 1L), class = "col_spec"), class = c("spec_tbl_df",
"tbl_df", "tbl", "data.frame"))
dts_output
【问题讨论】:
标签: r dataframe loops dplyr tidyverse