2016-12-08 5 views
0

私は日付のリストにlubridate :: yday()関数を適用することによって得られた "年の日"の形式の日のリストを持っています。たとえば、次の日付(MM-DD-yyyy形式)から:yday lubridate関数の逆数はありますか?

01-01-2015 
01-02-2015 
... 

ydayを適用することにより、()あなたは

1 
2 
... 

を取得yday出力一定の逆を行うことができます機能がありますそして年?つまり、昨日の価値と年から、mm-dd-yyyy形式の日付に戻りますか?

+0

私はこのタイプの質問がStackOverflowで良いと思う。 – Jon

+0

解決策は、日のシーケンス(mm-dd-yyyy形式)を作成し、lubridate :: yday()関数を日に適用して年を取得することです。次に、簡単なマージや結合を行います。それ以上考えないでください。 – Jon

+0

マージは必要ありません。 Rには日付演算があります。私の答えを見てください。 –

答えて

1

任意の順序Date()タイプだけではオフセットを持つ新しいDate()シーケンスを作成するに加えます。

証人:そのパッケージとは何の関係もなるように再び

R> as.Date("2016-01-01") + 0:9 
[1] "2016-01-01" "2016-01-02" "2016-01-03" 
[4] "2016-01-04" "2016-01-05" "2016-01-06" 
[7] "2016-01-07" "2016-01-08" "2016-01-09" 
[10] "2016-01-10" 
R> as.Date("2016-01-01") + 100:109 
[1] "2016-04-10" "2016-04-11" "2016-04-12" 
[4] "2016-04-13" "2016-04-14" "2016-04-15" 
[7] "2016-04-16" "2016-04-17" "2016-04-18" 
[10] "2016-04-19" 
R> 

いわゆるlubridate問題はなく、単にベースRタイプがどのように機能するかを知ることが必要です。

+0

ニース - いつも簡単なデートのようです。また、 'as.Date(paste(100,2015)、format ="%j%Y ")'は適切に動作します。 – thelatemail

+0

興味深い。 'yearday year'を試していなかった。理にかなっている。その前に気がついていたのは、「週末の年」が失敗したことで、7つの可能性の中で未確定の日付ではありません。 「平日週末年」が働きます。しかし、再解析はちょうど追加することより劣っています:) –

+0

コメント無しで、匿名のSOユーザーに感謝します。建設的な批判を見て、すでに働いている答えをさらに改善することは、常に良いことです。あ、ちょっと待って、 ... –

0
> yday ("1990-03-17") - 1 + as.Date ("1990-01-01") 
[1] "1990-03-17" 
関連する問題