基于日期范围,例如
my.date <- seq(as.Date('2000-01-01'),as.Date('2009-12-31'), by="days")
我需要在该范围内的所有年份重复创建“10月1日”和“2月20日”的日期。
对于提供的示例,结果将是如下所示的数据框:
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
我所拥有的日期范围非常多样,所以理想情况下我应该能够自动确定序列的初始和最后年份。
怎么做?
答案 0 :(得分:1)
以下是包含seq
和as.Date
的基本R方法:
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