2

Rの日付/時刻オブジェクトをユリウス日の端数に変換するにはどうすればよいですか?

たとえば、この日付を変更するにはどうすればよいですか。

date <- as.POSIXct('2006-12-12 12:00:00',tz='GMT')

このような数に

> fjday
[1] 365.5

ここで、ユリウス日は 1 月 1 日から数えた経過日です。分数 0.5 は、午後 12 時、つまり 1 日の半分であることを意味します。

これは一例ですが、私の実際のデータは 2006 年の 365 日すべてをカバーしています。

4

3 に答える 3

4

すべての日付が同じ年 (2006 年) のものであるため、これは非常に簡単なはずです。

julian(date, origin = as.POSIXct('2006-01-01', tz = 'GMT'))

あなたまたは別の読者がたまたまデータセットを他の年に拡張した場合、次のように各年の初めの原点を設定できます。

sapply(date, function(x) julian(x, origin = as.POSIXct(paste0(format(x, "%Y"),'-01-01'), tz = 'GMT')))
于 2014-12-21T22:07:00.873 に答える
2

関数を見てくださいdifftime

> unclass(difftime('2006-12-12 12:00:00', '2006-01-01 00:00:00', tz="GMT", units = "days"))
[1] 345.5
attr(,"units")
[1] "days"
于 2014-12-21T22:25:20.310 に答える