Опция с использованием базы R ave
и data.table::rleid
library(data.table)
df$Consec_days <- with(df, (return > 3) * ave(return, rleid(return > 3), FUN = seq_along))
# date return Consec_days
# <date> <dbl> <dbl>
# 1 2019-02-20 1 0
# 2 2019-02-21 2.5 0
# 3 2019-02-22 2 0
# 4 2019-02-23 3 0
# 5 2019-02-24 5 1
# 6 2019-02-25 6.5 2
# 7 2019-02-26 1 0
# 8 2019-02-27 9 1
# 9 2019-02-28 3 0
#10 2019-03-01 2 0
Используя rleid(return > 3)
, мы создаем группы, а затем используем seq_along
и создаем последовательность наблюдений для каждой группы
Мы умножаем его на (return > 3)
, чтобы сохранить наблюдения, которые больше 3, а все остальные обращаются к 0.
Перевести его на dplyr
мы можем сделать
library(dplyr)
df %>%
group_by(group = rleid(return > 3)) %>%
mutate(consec_days = (return > 3) * row_number()) %>%
ungroup() %>%
select(-group)
Решено
Я не могу поверить, сколько всего мне пришлось продираться, чтобы найти это!
Сейчас это кажется Оооооо очевидным (как и большая часть .net постфактум!) 1213] Datagrid.Columns ("Zone"). DisplayIndex = 0
или
Datagrid.columns (1) .DisplayIndex = 0
То, что вы видите, является эффектом того, как VB генерирует анонимные типы в Visual Studio 2008 RTM. Компилятор отсортирует свойства по алфавиту. Следовательно, независимо от того, какой порядок вы указали, при связывании данных с запросом столбцы будут отображаться в алфавитном порядке.
В Visual Studio 2008 SP1 компилятор VB внес изменения для решения этой проблемы. Анонимные типы теперь будут генерировать члены анонимного типа так же, как вы указываете их в коде. Если вы обновитесь до VS2008 SP1, вы должны увидеть изменение в этом поведении.
Подробная статья по теме
Я не уверен, что конкретно происходит, но кое-что нужно учитывать ...
В какой момент вы меняете столбцы? Если слишком поздно, возможно, потребуется отскочить от сетки, что приведет к ее перерисовке. Обычно, когда я что-то меняю и не вижу его эффекта на экране, это происходит из-за порядка привязки.