2016-10-28 17 views
0

分数年と曜日をRで実際の日付形式に変換することはできますか?分数年と日付を年に換算するR

たとえば、下のサンプルデータのtimeの列では、1900.00は1900年の1月に対応し、1900.08は2月に対応します。 dayofyrは年の日に対応します。

MYDATA < - 構造(リスト(時間= Cの(1900、1900、1900、1900、1900、1900、1900、 1900 1900 1900 1900 1900 1900 1900 1900 1900 1900年、 1900 1900 1900 1900 1900 1900 1900 1900 1900 1900 1900 1900年、 1900、1900、1900.08、1900.08、1900.08、1900.08、1900.08、1900.08、 1900.08、1900.08、1900.08、1900.08 、1900.08、1900.08、1900.08、 1900.08、1900.08、1900.08、1900.08、1900.08、1900.08、1900.08、 1900.08、1900.08、1900.08、1900.08、1900.08、1900.08、1900.08、 1900.08、1900.08、1900.17、1900.17、1900.17、1900.17、 1900.17, 1900.17,1900.17,1900.17,1900.17,1900.17,1900.17,1900.17, 1900.17、1900.17、1900.17、1900.17、1900.17、1900.17、1900.17、 1900.17、1900.17、1900.17、1900.17、1900.17、1900.17、1900.17、 1900.17、1900.17、1900.17、1900.17、1900.17、1900.25、1900.25、 1900.25、1900.25、 1900.25、1900.25、1900.25、1900.25、1900.25、 1900.25、1900.25、1900.25、1900.25、1900.25、1900.25、1900.25、 1900.25、1900.25、1900.25、1900.25、1900.25、1900.25、1900.25、 1900.25、1900.25、1900.25、1900.25、1900.25 、1900.25、1900.25、 1900.33、1900.33、1900.33、1900.33、1900.33、1900.33、1900.33、 1900.33、1900.33、1900.33、1900.33、1900.33、1900.33、1900.33、 1900.33、1900.33、1900.33、1900.33、1900.33、1900.33、1900.33、 1900.33,1900.33,1900.33、 1900.33、1900.33、1900.33、1900.33、 1900.33、1900.33、1900.33、1900.42、1900.42、1900.42、1900.42、 1900.42、1900.42、1900.42、1900.42、1900.42、1900.42、1900.42、 1900.42、1900.42、1900.42、1900.42、1900.42、1900.42 、1900.42、 1900.42、1900.42、1900.42、1900.42、1900.42、1900.42、1900.42、 1900.42、1900.42、1900.42、1900.42、1900.42、1900.5、1900.5、 1900.5、1900.5、1900.5、1900.5、1900.5、1900.5、1900.5、1900.5、 1900.5、1900.5、1900.5、1900.5、1900.5、1900.5、1900.5、1900.5、 1900.5、1900.5、1900.5、1900.5、1900.5、1900.5、1900.5、1900.5、 1900.5、1900.5、1900.5、1900.5、1900.5、1900.58、1900.58、1900.58 、 1900.58,1900.58,1900.58,1900.58,1900.58,1900.58,1900.58, 1900.58、1900.58、1900.58、1900.58、1900.58、1900.58、1900.58、 1900.58、1900.58、1900.58、1900.58、1900.58、1900.58、1900.58、 1900.58、1900.58、1900.58、1900.58、1900.58、1900.58、1900.58、 1900.67、1900.67、 1900.67、1900.67、1900.67、1900.67、1900.67、 1900.67、1900.67、1900.67、1900.67、1900.67、1900.67、1900.67、 1900.67、1900.67、1900.67、1900.67、1900.67、1900.67、1900.67、 1900.67、1900.67、1900.67、1900.67、1900.67 、1900.67、1900.67、 1900.67、1900.67、1900.75、1900.75、1900.75、1900.75、1900.75、 1900.75、1900.75、1900.75、1900.75、1900.75、1900.75、1900.75、 1900.75、1900.75、1900.75、1900.75、1900.75、1900.75、1900.75、 1900.75、1900.75、1900.75、 1900.75、1900.75、1900.75、1900.75、 1900.75、1900.75、1900.75、1900.75、1900.75、1900.83、1900.83、 1900.83、1900.83、1900.83、1900.83、1900.83、1900.83、1900.83、 1900.83、1900.83、1900.83、1900.83、1900.83、1900.83 1900.83,1900.83,1900.83,1900.83,1900。83、 1900.83、1900.83、1900.83、1900.83、1900.83、1900.83、1900.83、 1900.92、1900.92、1900.92、1900.92、1900.92、1900.92、1900.92、 1900.92、1900.92、1900.92、1900.92、1900.92、1900.92、1900.92、 1900.92、 1900.92、1900.92、1900.92、1900.92、1900.92、1900.92、 1900.92、1900.92、1900.92、1900.92、1900.92、1900.92、1900.92、 1900.92、1900.92、1900.92)、dayofyr = 1:366)、クラス= Cの( "tbl_df"、 "TBL"、 "data.frame")、row.namesの= Cの(NA、-366L)、.Namesの= Cの( "時間"、 "dayofyr"))

+1

'lubridate :: date_decimal(1900.08、tz =" UTC ")'をチェックしましたか? – lukeA

+0

いいえ、私はそれをチェックします。ありがとう。 – SoilSciGuy

答えて

1

使用floor小数部分を除去します"-01-01"を付加して文字列に変換し、それをに変換します。クラスに追加し、日数から1を引いた値を加えます。パッケージは使用されません。

transform(myData, date = as.Date(paste0(floor(time), "-01-01")) + dayofyr - 1) 
+0

ありがとう、私はちょうど10進数を削除し、年の1日を貼り付けるためにフロアオプションをつぶしていたが、これははるかに良い解決策です。うるう年も働いています。 – SoilSciGuy

関連する問題