2017-02-14 8 views
2

tidyverselubridateで時系列ベクトルを生成する効率的な方法はありますか?私は2人がseq()と働くことができることを知っています。たとえば、入力して:Rとlubridateを使用してシーケンスを生成する

seq(today(), today()+dyears(1), 60) 

1は

"2017-02-14" "2017-04-15" "2017-06-14" "2017-08-13" "2017-10-12" "2017-12-11" "2018-02-09" 

しかし、60日の間隔で一連の日付を取得することができ、これは週間のために働くことができることをどのような方法があります月も同様ですか?私は仕事だろうと思ったけどなかった以下のコードに似おそらく何か:

seq(as_date(2000-01-01), as_date(2017-01-01), dyears(1)) 

Error: Incompatible duration classes (Duration, numeric). Please coerce with as.duration .

私は1だけ年や月の近似値が必要な場合365または30dyears(1)を変更することが可能である知っています、数年と数ヶ月の閏年を考慮するよりスマートな方法があるかどうか疑問に思っていました。より多くのコンテキストを提供するために、


、私はggplotscale_x_dateをカスタマイズすることができますので、日付ベクトルを生成したいと思います。 waiver()に2000年、2003年、2006年、2009年を表示させる代わりに、可能であれば、すべての個別年または3か月ごとの期間を設定したいと考えています。

+4

'配列を' – GGamba

+2

' seq.Date'を使ってください。それは少し魔法です。あなたは 'by = '2 weeks''を渡すことができ、それを理解するでしょう。 – alistaire

+0

ありがとうございます@GGamba、私は 'seq()'の 'by ='で 'weeks'と 'years'を指定できることを知らなかった –

答えて

2

あなたはseq.Date()を使用して試みることができる:

seq.Date(from=as.Date("2000-01-01"), to=as.Date("2010-01-01"), by="month") 

か:((1)、= '週までに、今日()、今日()+ dyears)

seq(as.Date("2000/1/1"), by = "month", length.out = 12) 
関連する問題