我在 P 有个约会
date = as.Date("2011-02-23", "%Y-%m-%d")
是否有可能找出该特定日期的月份的天数?(关于 leapyears)。在 PHP 中,它看起来类似于 this(http://www.php.net/manual/en/function.date.php):
days = format(date, "%t")
但是“% t”在 R 中似乎有不同的含义。这个问题有解决方案吗?
lubridate
包具有关于闰年的必需函数“days_in_month”。
你的例子:
date <- as.Date("2011-02-23", "%Y-%m-%d")
lubridate::days_in_month(date)
# Feb
# 28
闰年(2016):
date_leap <- as.Date("2016-02-23", "%Y-%m-%d")
lubridate::days_in_month(date_leap)
# Feb
# 29
Hmisc library有几个有用的函数:
require(Hmisc)
monthDays(as.Date('2010-01-01'))
你可以写简单的函数来做到这一点:
numberOfDays <- function(date) {
m <- format(date, format="%m")
while (format(date, format="%m") == m) {
date <- date + 1
}
return(as.integer(format(date - 1, format="%d")))
}
调用为:
> date = as.Date("2011-02-23", "%Y-%m-%d")
> numberOfDays(date)
[1] 28
> date # date is unchanged
[1] "2011-02-23"
这就像在两个日期之间取差异一样容易-所以把它定为一个月的第一个月和下个月:
R> difftime( as.Date("2011-06-01"), as.Date("2011-05-01") )
Time difference of 31 days
R> as.numeric(difftime( as.Date("2011-06-01"), as.Date("2011-05-01") ))
[1] 31
R>
as.numeric()
将其转换为您可以使用的数字。
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(44条)