3
我想爲Date
類定義一個加法運算,以便增加幾個月,而不是那幾天。爲Date類創建一個新的加法運算符
這工作:
`+.Date`<- function(date,n) seq(date, by = paste (n, "months"), length = 2)[2]
不幸的是它破壞(面具)的天數按原來的加法運算。
這工作,以及:
`%+%`<- function(date,n) seq(date, by = paste (n, "months"), length = 2)[2]
但它不是具體的Date
類。
可以定義一個優雅退出。
`%+%`<- function(date,n) {
if (class(date)=="Date") return (seq(date, by = paste (n, "months"), length = 2)[2])
else stop("%+% only valid for Date + numeric")
}
總之,理想的情況是Date
定義的操作%+%
,像+.Date
:
rm("%+%")
`%+%.Date`<- function(date,n) seq(date, by = paste (n, "months"), length = 2)[2]
但:
as.Date("2010/1/1") %+% 2
Error: could not find function "%+%"
你能解決%+%.Date
?我們是否需要重新定義類Date
?
請不要建議一些花哨的圖書館來總結一些對象。更好地分享他們的代碼中的想法。
+1謝謝,正是我無法在文檔中找到。 – antonio 2013-03-10 11:03:35