Цикл по датам возвращает ноль - PullRequest
0 голосов
/ 22 апреля 2019

Фактический вывод Я пытаюсь суммировать сумму, если столбец дат (z) попадает в указанный диапазон.К сожалению, мой цикл не работает, и у меня нулевой вывод.

 Sd <- as.Date('2017-01-01',tz = "GMT")
 EndDate <- as.Date('2017-01-20',tz = "GMT")
 Ed <- EndDate + 30

 LTV1 <- while (Sd < Ed) {


 Sd <- Sd + 1
 LTV1 <- LTV %>% group_by(InstallationDate)%>% filter(z < Sd) %>% 
 summarize(Amount = sum(USAmount))


 }

 as.data.frame(LTV1)

Приношу извинения всем.Я новичок в этом.Вот воспроизводимый пример:

  Sample <- as.data.frame(seq(as.Date("2017/01/01"), by = "day", length.out 
  = 15))
  Sample$Amount <- c(10,5,3,4,8,65,89,47,74,95,85,63,32,45,32)



  colnames(Sample)[1] <- "date"

  Sd <- as.Date('2017-01-01',tz = "GMT")
  EndDate <- as.Date('2017-01-5',tz = "GMT")
  Ed <- EndDate + 3

  Sample1 <- while (Sd < Ed) {


  Sd <- Sd + 1
  Sample1 <- Sample %>% group_by(date)%>% filter(date < Sd) %>% 
  summarize(Amount = sum(Amount))


  }

  as.data.frame(Sample1)


 Desired Output will be:
 Dates: Day 1    Day 2   Day 3 .......................
 Amount: 25       54      89   .......................

Ответы [ 2 ]

0 голосов
/ 22 апреля 2019

Я думаю, это то, что вы хотите:

LTV1 = LTV %>% 
   arrange(InstallationDate) %>%
   group_by(InstallationDate) %>%
   summarize(daily_amount = sum(USAmount)) %>%
   ungroup() %>%
   mutate(cumulative_amount = cumsum(daily_amount))

Я считаю, что столбец cumulative_amount - это то, что вы пытаетесь создать - хотя это трудно сказать и невозможно проверить, поскольку вы не воспроизводили свои входные данные. Я также не могу сказать, нужны ли arrange, group_by и summarize - если ваши данные уже упорядочены по дате, arrange не требуется. Если ваши данные содержат только одну строку в день, группировка и обобщение не нужны.

0 голосов
/ 22 апреля 2019

Вы присваиваете (почему?) LTV1 результат while, который всегда равен NULL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...