月末日の取得

Rで月末日を取得する関数を作成した。

endOfMonth <- function(date_)
{
	#該当月の月初日
	startOfMonth <- as.Date(format(date_,"%Y%m01"),"%Y%m%d")
	#次月の月初日
	startOfNextMonth <- as.Date(format(startOfMonth+31,"%Y%m01"),"%Y%m%d")
	#一日前が該当月の月末日
	return(startOfNextMonth-1)
}

実際に使用してみると

> x <- c(as.Date("2010-10-01"),as.Date("2010-10-10"),as.Date("2010-10-31"))
> print(endOfMonth(x))
[1] "2010-10-31" "2010-10-31" "2010-10-31"

と月末日が取得できる。
Rの日付処理周りの情報が全然なくてとても困る。