Динамический Cumsum с условием

Я думаю, что это идеальный шаблон реализации для типов значений.

. В любом случае, поскольку Celsius неявно конвертируется в / из int, вы можете определить такие границы:

public const int MinValue = -273;
public const int MaxValue = int.MaxValue;

Однако в действительности нет никакой практической разницы между static readonly и const.

1
задан Stephan Claus 18 January 2019 в 18:11
поделиться

1 ответ

Вот попытка: взять копию каждого фрейма данных группы / подгруппы и выполнить перекрестное соединение с данными. Затем он фильтруется, чтобы найти только дни раньше. Это позволяет нам на каждый день рассчитывать все совокупные суммы

DF %>%
  group_by(group, subgroup) %>%
  mutate(day = row_number(), J = TRUE) %>%
  nest() %>%
  arrange(group, subgroup) %>%
  mutate(data = map(data, function(d) {
    inner_join(d, transmute(d, x = day, v = subgroup_value, J), by = "J") %>%
      filter(day >= x) %>%
      mutate(x = day - x + 1) %>%
      arrange(day, x) %>%
      group_by(date, group_value, date, subgroup_value) %>%
      mutate(vv = cumsum(v),
             vv = ifelse(vv >= group_value, vv, NA),
             xx = ifelse(!is.na(vv), x, NA)) %>%
      group_by(date, group_value, day, subgroup_value) %>%
      summarise(x = min(xx, na.rm = TRUE), v = min(vv, na.rm = TRUE))
  })) %>%
  unnest()
0
ответ дан Tom Jemmett 18 January 2019 в 18:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: