R-问题:变异不';不要创建新列

R-问题:变异不';不要创建新列,r,dplyr,mutate,R,Dplyr,Mutate,我有一个带有两个变量的数据框架:ID和交付日期。 我打算按ID对数据帧进行分组,然后将一个月+i添加到交付日期,其中“i”是相同ID的第n次出现。例如: ID日期。交货新。日期 001 2020-01-01 2020-02-01(+1个月) 001 2020-01-01 2020-03-01(+两个月,因为第二次出现相同ID) 002 2020-01-01 2020-02-01(+1个月,因为这是第一次出现新ID) 为了实现这一点,我尝试以下代码: DF% 分组依据(ID)%>% mutate

我有一个带有两个变量的数据框架:ID和交付日期。 我打算按ID对数据帧进行分组,然后将一个月+i添加到交付日期,其中“i”是相同ID的第n次出现。例如:

ID日期。交货新。日期
001 2020-01-01 2020-02-01(+1个月)
001 2020-01-01 2020-03-01(+两个月,因为第二次出现相同ID)
002 2020-01-01 2020-02-01(+1个月,因为这是第一次出现新ID)
为了实现这一点,我尝试以下代码:

DF%
分组依据(ID)%>%
mutate(New.Month=for(i in 1:n()){DF$Date.Delivery[i]%m+%months(0+i)})
它似乎起作用了,因为它给了我新的日期作为数字。问题是它不会在DF中创建新列。实际上,当我调用DF$New.Month时,会出现消息“Unknown Columns:”New.Month“。然后,当我查看DF时,在末尾有一种data.frame或list,而不是带有以下内容的新列:

-attr(*,“groups”)=类“tbl_df”、“tbl”和“data.frame”:1791 obs。共有2个变量:
…合同编号:chr“001”“002”“003”。。。。
..$行:1791行的列表
.. ..$ : int 15205
.. ..$ : int 16190 16191 16192 16193 16194
.. ..$ : 国际电话5989 5990 5991
.. 
[…省略20行]
我试图弄明白为什么我的代码没有像mutate那样创建一个新列


感谢您的帮助

大家好,欢迎来到SO。使用
dplyr
这将为您提供所需的输出:

df%>%
分组依据(ID)%>%
变更(New.Month=日期.交货%m+%个月(行号(ID)))
#一个tibble:3x3
#组别:ID[2]
#ID日期。交货新。月份
#                 
# 1 001   2020-01-01    2020-02-01
# 2 001   2020-01-01    2020-03-01
# 3 002   2020-01-01    2020-02-01

很好地利用了
%m+%
@akrun Leremi13提出了这个问题。我甚至都不知道。