2017-05-04 20 views
0

私は日付の終了について質問があります、私は以下で説明します。ここ
は私の例のデータである:R計算月末

DATE 
2015-01-01 
2015-02-05 
2015-09-29 
2016-02-07 
2016-07-24 
2016-12-16 

私はその月に総日数たい場合は、コードは知っている:

days_in_month(DATE) 

しかし、私がしたいことは以下の通りである:

DATE   DATE_Month_End 
2015-01-01  2015-01-31 
2015-02-05  2015-02-28 
2015-09-29  2015-09-30 
2016-02-07  2016-02-29 
2016-07-24  2016-07-31 
2016-12-16  2016-12-31 

どのようなご提案ですか?

答えて

3

あなたはでこれを行うことができます:day() <-は年と月を維持しながら、あなたは日を変更することができますので、

library(lubridate) 

DATE$DATE_Month_End <- DATE$DATE 
day(DATE$DATE_Month_End) <- days_in_month(DATE$DATE) 

+0

あなたの答えは素晴らしいです。これはただ1行で書くことができますか? –

1

このようなものはありますか?

library(lubridate) 
data$DATE <- ymd(data$DATE) 
data$DATE_Month_End <- paste(format(data$DATE, format="%y-%m"),"-", days_in_month(data$DATE), sep="") 


    DATE   DATE_Month_End 
1 2015-01-01  15-01-31 
2 2015-02-05  15-02-28 
3 2015-09-29  15-09-30 
4 2016-02-07  16-02-29 
5 2016-07-24  16-07-31 
6 2016-12-16  16-12-31 
+0

NO。私はこれを知っている。しかし、 'DATE'が' 2015-01-01'、 'DATE_Month_End'が' 2015-01-31'です。 –

+0

私はちょうど上記で編集しました –

+0

あなたの答えは良いです。しかし、同じ結果を得て、 'paste'を使わない別の方法がありますか? –