我有两个约会
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)