Я хочу добавить новый столбец в моем фрейме данных, который подсчитывает количество последовательных дней с условием: подсчитать количество последовательных дней, если «возврат» превышает 3.
Вот мой набор данных:
df <- tibble(
date = lubridate::today() +0:9,
return= c(1,2.5,2,3,5,6.5,1,9,3,2))
Мой фрейм данных должен выглядеть следующим образом:
date return Consec_days
<date> <dbl> <dbl>
1 2019-02-20 1 NA
2 2019-02-21 2.5 NA
3 2019-02-22 2 NA
4 2019-02-23 3 NA
5 2019-02-24 5 1
6 2019-02-25 6.5 2
7 2019-02-26 1 NA
8 2019-02-27 9 NA
9 2019-02-28 3 1
10 2019-03-01 2 NA
Если условие не выполняется, тогда дайте мне "NA" или "0"
Я уже пробовал:
df$Consec_Days <- with(df, ave(return, data.table::rleid(return > 3),
FUN = function(x) ifelse(return > 3, seq_along(x), 0L)))
Но это не работает.Кто-нибудь может мне помочь?