每年计算天数

spe*_*ndo 5 r date

我有两个约会

begin <- as.Date("2007-05-20")
end   <- as.Date("2010-06-13")
Run Code Online (Sandbox Code Playgroud)

我如何计算每年的天数?

输出应该看起来像这样

year   days
2007   226
2008   366
2009   365
2010   164
Run Code Online (Sandbox Code Playgroud)

Dir*_*tel 11

让我们首先创建一个正确的日期序列:

R> bd <- as.Date("2007-05-20")
R> ed <- as.Date("2010-06-13")
R> seqd <- seq(bd, ed, by="1 day")
R> head(seqd)
[1] "2007-05-20" "2007-05-21" "2007-05-22" "2007-05-23" "2007-05-24" "2007-05-25"
Run Code Online (Sandbox Code Playgroud)

然后我们创建一个辅助函数,给定一个日期,返回它的年份:

R> getYear <- function(d) as.POSIXlt(d)$year + 1900
R> getYear(head(seqd))
[1] 2007 2007 2007 2007 2007 2007
Run Code Online (Sandbox Code Playgroud)

之后,我们只是调用table()帮助程序从日期序列返回的内容:

R> table(getYear(seqd))

2007 2008 2009 2010 
 226  366  365  164 
Run Code Online (Sandbox Code Playgroud)

  • 上面的略有变化是:`table(格式(seq(bd,ed,"day"),"%Y")) (3认同)