Мне нужна помощь в R: я пытаюсь определить пробелы в последовательной серии из двух переменных.
В настоящее время у меня есть список, похожий на этот.
data <- fetch(rs, n=-1)
names(data) <- c("~Open", "~Close")
Browse[2]> typeof(data)
[1] "list"
~Open ~Close
10000 10019
10020 10039
10040 10051 -> Gap from 10052->10060 : I need 10040-10060
10060 10079
10100 10119 -> Gap from 10080->10099 : I need 10060-10099 or 10080-10099
10160 10179 -> Gap from 10120->10159 : I need 10120-10159 or 10100-10159
Мой результат должен выглядеть как список с пропущенными записями (Start, Stop).
Например:
Open Close
10040 10060
10080 10099
10100 10159
или
Open Close
10040 10099
10120 10159
Может ли кто-нибудь указать мне правильное направление?
Заранее спасибо.
Обновление: пытаюсь сделать:
gaps <- data %>%
mutate(lead_start = lead(Open) - 1) %>%
filter(Close != lead_start) %>%
transmute(Open = Close + 1, Close = lead_start)
Я получаю следующее сообщение об ошибке:
Error in mutate_impl(.data, dots) :
Evaluation error: object 'Open' not found.
На самом деле мне просто нужно было сделать это:
data <- fetch(rs, n=-1)
lastOpen <- data[dim(data)[1], 2]
lastOpen <- lastOpen - lastOpen %% 20;
gaps <- as_tibble(data) %>%
mutate(lead_start = lead(Open) - 1) %>%
filter(Close != lead_start) %>%
transmute(Open = (Close + 1) - ((Close + 1) %% 20), Close = lead_start) %>%
add_row(Open = lastOpen, Close = Sys.time())
Благодаря mkeskisa !!!!!