У меня есть два столбца, которые содержат информацию о начале и конце последовательности. Из этого я хочу создать столбец последовательности, то есть каждая последовательность начинается, когда seq_start
равен 1
, и заканчивается первой строкой, которая появляется после seq_start = 1
, в которой seq_end = 1
. Как я могу сделать это с tidyverse
? Данные показаны ниже, где seq
- ожидаемый результат. Обратите внимание, что когда seq_end = 1
и seq_start = 1
в одних и тех же строках, получается последовательность длиной один.
structure(list(seq_start = c(NA, NA, NA, NA, NA, 1, NA, NA, NA,
NA, NA, 1, NA, 1, NA, NA, NA, NA, NA, NA, 1, 1, NA, NA, NA, NA,
NA, 1, 1, NA, NA, 1, NA, NA, NA, 1, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, NA, 1, NA, NA, NA, NA, NA, NA, NA, NA, 1,
NA), seq_end = c(NA, NA, NA, NA, NA, NA, NA, NA, NA, NA, 1L,
1L, 1L, 1L, NA, NA, 1L, 1L, 1L, NA, 1L, NA, NA, NA, NA, NA, 1L,
1L, NA, NA, 1L, 1L, NA, 1L, 1L, 1L, 1L, NA, NA, NA, 1L, 1L, NA,
NA, NA, NA, NA, NA, 1L, NA, 1L, 1L, NA, 1L, 1L, NA, NA, 1L, 1L,
1L), seq = c(NA, NA, NA, NA, NA, 1L, 1L, 1L, 1L, 1L, 1L, 2L,
NA, 3L, NA, NA, NA, NA, NA, NA, 4L, 5L, 5L, 5L, 5L, 5L, 5L, 6L,
7L, 7L, 7L, 8L, NA, NA, NA, 9L, NA, NA, NA, NA, NA, NA, NA, NA,
NA, NA, NA, NA, NA, 10L, 10L, NA, NA, NA, NA, NA, NA, NA, 11L,
NA)), .Names = c("seq_start", "seq_end", "seq"), class = c("tbl_df",
"tbl", "data.frame"), row.names = c(NA, -60L))