Arrays 调整日期以避免日期重叠

Arrays 调整日期以避免日期重叠,arrays,r,days,Arrays,R,Days,如果我有三个日期,例如1月1日,1月25日,和2月20日,但我希望这些日期以30天分隔,我该怎么做? 例如,我想做的是1月1日,1月30日,2月29日 我对R非常陌生,但是代码应该是这样的-如果2号日期在(1号日期+30)之前,那么将2号日期调整为(1号日期+31),同样地,对于3号日期 任何帮助都将不胜感激 d1=截止日期(“01-01”,格式=“%m-%d”) d1 = as.Date("01-01",format="%m-%d") d2 = as.Date("01-25",format="

如果我有三个日期,例如
1月1日
1月25日
,和
2月20日
,但我希望这些日期以
30天
分隔,我该怎么做? 例如,我想做的是
1月1日
1月30日
2月29日

我对R非常陌生,但是代码应该是这样的-如果
2号日期
在(
1号日期
+30)之前,那么将
2号日期
调整为(
1号日期
+31),同样地,对于
3号日期

任何帮助都将不胜感激

d1=截止日期(“01-01”,格式=“%m-%d”)
d1 = as.Date("01-01",format="%m-%d")
d2 = as.Date("01-25",format="%m-%d")
if (abs(as.numeric(difftime(d2,d1)))<30) d2 = d1 + 30

>d2
[1] "2015-01-31"
d2=截止日期(“01-25”,格式=“%m-%d”) if(abs(作为数字(difftime(d2,d1)))d2 [1] "2015-01-31"
d1=截止日期(“01-01”,格式=“%m-%d”)
d2=截止日期(“01-25”,格式=“%m-%d”)
if(abs(作为数字(difftime(d2,d1)))d2
[1] "2015-01-31"
d1=截止日期(“01-01”,格式=“%m-%d”)
d2=截止日期(“01-25”,格式=“%m-%d”)
if(abs(作为数字(difftime(d2,d1)))d2
[1] "2015-01-31"
d1=截止日期(“01-01”,格式=“%m-%d”)
d2=截止日期(“01-25”,格式=“%m-%d”)
if(abs(作为数字(difftime(d2,d1)))d2
[1] "2015-01-31"

由于您希望相邻日期对之间有固定的距离,因此不需要“调整”任何日期;相反,您可以从头开始计算所需的日期向量,从第一个日期开始

这实际上可以通过调用S3通用命令来完成,该命令将分派到:


还要注意的是,您在推导预期日期时似乎犯了一个错误;从1月1日算起的30天是1月31日,而不是1月30日。

由于您希望相邻两个日期之间有一个固定的距离,您不需要“调整”任何日期;相反,您可以从头开始计算所需的日期向量,从第一个日期开始

这实际上可以通过调用S3通用命令来完成,该命令将分派到:


还要注意的是,您在推导预期日期时似乎犯了一个错误;从1月1日算起的30天是1月31日,而不是1月30日。

由于您希望相邻两个日期之间有一个固定的距离,您不需要“调整”任何日期;相反,您可以从头开始计算所需的日期向量,从第一个日期开始

这实际上可以通过调用S3通用命令来完成,该命令将分派到:


还要注意的是,您在推导预期日期时似乎犯了一个错误;从1月1日算起的30天是1月31日,而不是1月30日。

由于您希望相邻两个日期之间有一个固定的距离,您不需要“调整”任何日期;相反,您可以从头开始计算所需的日期向量,从第一个日期开始

这实际上可以通过调用S3通用命令来完成,该命令将分派到:


还要注意的是,您在推导预期日期时似乎犯了错误;从1月1日算起的30天是1月31日,而不是1月30日。

当您尝试问题中的建议时发生了什么?当您尝试问题中的建议时发生了什么?当您尝试问题中的建议时发生了什么d你在问题中的建议是什么?谢谢你的回答。我实际上想把1月1日算为第一天。因此我提到了1月30日。谢谢你的回答。我实际上想把1月1日算为第一天。因此我提到了1月30日。谢谢你的回答。我实际上想把1月1日算为第一天。因此我提到了1月30日。谢谢谢谢你的回复。我实际上想把1月1日算为第一天。因此我提到了1月30日。。
seq(as.Date('2000-01-01'),by=30,length.out=3);
## [1] "2000-01-01" "2000-01-31" "2000-03-01"