R中任何天数基础的日期之间的天数
Days between dates for any day-count basis in R
R 中是否有一个函数可以计算任何天数基础上两个日期之间的天数?我正在寻找类似于 Matlab 的 daysdif 函数的东西。
http://www.mathworks.com/help/finance/daysdif.html
我特别感兴趣的是计算一年360天的天数,相当于Excel的days360函数。
http://www.techonthenet.com/excel/formulas/days360.php
是否有包含有用功能的软件包?
这适合你吗?
> as.POSIXct("2015-09-08")-as.POSIXct("2015-09-06")
Time difference of 2 days
> as.numeric(as.POSIXct("2015-09-08")-as.POSIXct("2015-09-06"))
[1] 2
编辑
使用 lubridate
包可以创建这样的函数
> library(lubridate)
>
> FACTOR_30_360 <- function(date1, date2){
+ stopifnot(is.POSIXct(date1) | is.POSIXct(date2))
+
+ (360*(year(date2)-year(date1)) + 30*(month(date2) - month(date1))
+ + day(date2)-day(date1))/360
+ }
>
> FACTOR_30_360(as.POSIXct("2015-09-08"),
+ as.POSIXct("2015-09-10"))
[1] 0.005555556
EDIT2
或者试试这个包 RQuantLib - 第 10 页
R 中是否有一个函数可以计算任何天数基础上两个日期之间的天数?我正在寻找类似于 Matlab 的 daysdif 函数的东西。
http://www.mathworks.com/help/finance/daysdif.html
我特别感兴趣的是计算一年360天的天数,相当于Excel的days360函数。
http://www.techonthenet.com/excel/formulas/days360.php
是否有包含有用功能的软件包?
这适合你吗?
> as.POSIXct("2015-09-08")-as.POSIXct("2015-09-06")
Time difference of 2 days
> as.numeric(as.POSIXct("2015-09-08")-as.POSIXct("2015-09-06"))
[1] 2
编辑
使用 lubridate
包可以创建这样的函数
> library(lubridate)
>
> FACTOR_30_360 <- function(date1, date2){
+ stopifnot(is.POSIXct(date1) | is.POSIXct(date2))
+
+ (360*(year(date2)-year(date1)) + 30*(month(date2) - month(date1))
+ + day(date2)-day(date1))/360
+ }
>
> FACTOR_30_360(as.POSIXct("2015-09-08"),
+ as.POSIXct("2015-09-10"))
[1] 0.005555556
EDIT2
或者试试这个包 RQuantLib - 第 10 页