在循环中为一系列日期创建列

时间:2019-04-22 20:14:24

标签: r

Actual Output我有一个运行良好的循环,该循环可以根据某些日期的范围求和一列的总和。该循环如下:

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


 while (Sd < Ed) {


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


   }
 mn <-   as.data.frame(LTV1)

在上面,Z是包含日期的列。 现在,我想为上述循环运行的每一天创建一列,每一列指示该特定日期收集的金额。因此,在这种情况下,我们将需要30列。

我尝试创建另一个循环,该循环将每天创建一列,但是它什么也没做,并且输出仍然相同。代码如下:

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

  V <- Ed - Sd  

  for(i in 1:V){


  mn[ , paste0("Amount", i)] <-   while (Sd < Ed) {


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

 }

 }

 mn <-   as.data.frame(LTV1)

尽管运行,但这根本不起作用。我不确定自己做错了什么或解决了什么。 我将不胜感激,感谢您的反馈。 理想的结果将是:

 InstallationDate     Amount1   Amount2  Amount3 ...........Amount30
 2017-01-01             
 2017-01-02             
     .
     . 
     .

0 个答案:

没有答案