this thread
. 与此类似,我需要定义一个group column的运行长度类型id(忽略
NA
seq_break
表示序列应该在
seq_break = TRUE
,而事实上,它应该作为上一个序列的最后一个事件包含。示例数据附在下面。这种差异可以在一行中观察到
46
13
在这里,我需要把它按顺序包括进去
12
df <- structure(list(group = c(NA, NA, "home", "home", "home", "home",
"home", "home", "away", NA, NA, "home", "home", "home", NA, NA,
NA, "home", "away", "away", NA, "away", "away", "away", "home",
"away", "away", "away", NA, "home", "home", NA, NA, "away", NA,
NA, "home", NA, NA, "home", "home", "home", "home", "home", "home",
"home", "away", "away", NA, NA), seq_break = c(FALSE, FALSE,
FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, TRUE,
FALSE, FALSE, FALSE, TRUE, TRUE, TRUE, FALSE, FALSE, FALSE, TRUE,
FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, FALSE,
FALSE, TRUE, TRUE, FALSE, TRUE, FALSE, FALSE, TRUE, TRUE, FALSE,
FALSE, FALSE, FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, TRUE,
TRUE), expected_output = c(NA, NA, 1, 1, 1, 1, 1, 1, 2, NA, NA,
3, 3, 3, NA, NA, NA, 4, 5, 5, NA, 6, 6, 6, 7, 8, 8, 8, NA, 9,
9, NA, NA, 10, NA, NA, 11, NA, NA, 12, 12, 12, 12, 12, 12, 12,
13, 13, NA, NA)), .Names = c("group", "seq_break", "expected_output"
), class = c("tbl_df", "tbl", "data.frame"), row.names = c(NA,
-50L))
你有没有什么办法
tidyverse
cumsum
可以在这里替换。。。