コメントのフォローアップでは、日付の出所が間違っているという問題があります。あなたは、日付を計算する場合ことを確認し、それらがどのように遠く離れて見ることができます。
inDates <- c(731961,731962,731966,731967,731968)
correctDates <- as.Date(c("2004-01-15","2004-01-16","2004-01-20","2004-01-21","2004-01-22"))
wrongDates <- as.Date(inDates, origin = "1900-01-01")
difftime(wrongDates, correctDates, units = "days")
彼らがオフの正しい日付から693962日であり、起源が間違っていることを示唆しています。 @Haborymeのように原点を0-01-01
に設定すると近づくが、まだ一日遅れる。私の推測では、うるう年のエラーがあるか、シリアル番号が年0の1月1日を0ではなく1にしたかったと思います。原点をBCE日付に設定することはできません(おそらく方法はありますが私は周りに仕事を見つけたとき、私はそれを押収した)。したがって、入力日付から1を減算し、原点を設定します。
as.Date(inDates - 1, origin = "0000/01/01")
しかし、これもまた別の方法を示唆しています。このような通し番号が日常的にあり、起源が変わった場合、起源を見つけるために遊んでいることは後部の痛みです。ただし、日付の一部を知っていて、すべてが同じ原点を使用していることを確認できる場合は、同じ原点を使用している場合は、正しい入力を得るために、それぞれの新しい入力から上からoffBy
を差し引くことができます。
as.Date(inDates - as.numeric(offBy[1]), origin = "1900-01-01")
正しい日付も指定します。
'as.Date'は整数で指定された起点からの日数を示します。 1900年から731 +千日は約2000年です。 – lmo
origin = "0-01-01"を試してください。 – Haboryme