R - 多年来创建日期重复
R - create date repetition over years
基于日期范围,例如,
my.date <- seq(as.Date('2000-01-01'),as.Date('2009-12-31'), by="days")
我需要在该范围内的所有年份创建日期 "October 1st" 和 "February 20st" 的重复。
对于提供的示例,结果将是一个如下所示的数据框:
begin end
2000-10-01 2001-02-20
2001-10-01 2002-02-20
2002-10-01 2003-02-20
2003-10-01 2004-02-20
2004-10-01 2005-02-20
2005-10-01 2006-02-20
2006-10-01 2007-02-20
2007-10-01 2008-02-20
2008-10-01 2009-02-20
我的日期范围变化很大,所以理想情况下我应该能够自动确定序列的开始和结束年份。
怎么做?
这是一个基本的 R 方法 seq
和 as.Date
:
my.date.df <- data.frame(begin=seq(as.Date('2000-10-01'),
length.out=9, by="years"),
end=seq(as.Date('2001-02-20'),
length.out=9, by="years"))
这里的by被替换为"years"。
my.date.df
begin end
1 2000-10-01 2001-02-20
2 2001-10-01 2002-02-20
3 2002-10-01 2003-02-20
4 2003-10-01 2004-02-20
5 2004-10-01 2005-02-20
6 2005-10-01 2006-02-20
7 2006-10-01 2007-02-20
8 2007-10-01 2008-02-20
9 2008-10-01 2009-02-20
基于日期范围,例如,
my.date <- seq(as.Date('2000-01-01'),as.Date('2009-12-31'), by="days")
我需要在该范围内的所有年份创建日期 "October 1st" 和 "February 20st" 的重复。
对于提供的示例,结果将是一个如下所示的数据框:
begin end
2000-10-01 2001-02-20
2001-10-01 2002-02-20
2002-10-01 2003-02-20
2003-10-01 2004-02-20
2004-10-01 2005-02-20
2005-10-01 2006-02-20
2006-10-01 2007-02-20
2007-10-01 2008-02-20
2008-10-01 2009-02-20
我的日期范围变化很大,所以理想情况下我应该能够自动确定序列的开始和结束年份。
怎么做?
这是一个基本的 R 方法 seq
和 as.Date
:
my.date.df <- data.frame(begin=seq(as.Date('2000-10-01'),
length.out=9, by="years"),
end=seq(as.Date('2001-02-20'),
length.out=9, by="years"))
这里的by被替换为"years"。
my.date.df
begin end
1 2000-10-01 2001-02-20
2 2001-10-01 2002-02-20
3 2002-10-01 2003-02-20
4 2003-10-01 2004-02-20
5 2004-10-01 2005-02-20
6 2005-10-01 2006-02-20
7 2006-10-01 2007-02-20
8 2007-10-01 2008-02-20
9 2008-10-01 2009-02-20