Rでナノ秒に日付を変換しようとしていますが、私はlubridateパッケージを使ってみましたが成功しませんでした。日付をナノ秒に変換するR
dateval < - C( "2016年6月29日")
すべてのヘルプは歓迎です!
ありがとうございました。
Rでナノ秒に日付を変換しようとしていますが、私はlubridateパッケージを使ってみましたが成功しませんでした。日付をナノ秒に変換するR
dateval < - C( "2016年6月29日")
すべてのヘルプは歓迎です!
ありがとうございました。
セットアップ:
require(lubridate)
dateval <- c("2016-06-29")
dateeval <- ymd(dateval)
ナノ秒は、10億分の1秒に等しい時間のSI単位です。ナノ秒単位でエポックとその日付の間で異なる
時間(おおよその日付とは、タイムスタンプがなかったので、は):
difftime(dateeval, Sys.time(), units = "secs")
abs(as.numeric(difftime(ymd("1970-01-01"),dateeval, units = "secs")))*1000000000
[1] 1.467158e+18
POSIXctは約1.1マイクロ秒にしか正確でないので、これは間違っています。あなたは必要なだけ乗算することができますが、最後の4桁は "double"で53ビットの精度でゴミになります。 –
@DirkEddelbuettelこれはあくまで日付のタイムスタンプでさえないので、これは近似であると答えたところではかなり分かりました。 –
そうではありません。実際には、[ナノタイムパッケージ](https://github.com/eddelbuettel/nanotime)は、POSIXct解決策を超えているため、これに答えることができます。これで、真夜中から適切な(整数64の分解能で)正確なナノ秒を得るためにナノタイム(Sys.time()) - ナノタイム(Sys.Date())を行うことができます。ここに近似はありません。その意味であなたの答えは私が主張しているように間違っています、そして、あなたの主張にもかかわらずこれは正しいです。 (ローカルとリモートの両方の違いがあるために残っているエラーがありますが、それは簡単に修正できるパラメータ化の問題です) –
microbenchmark
パッケージを使用してください。このパッケージは、何かを細かい精度で実行するのにかかる時間のベンチマークを返します。精度はそれほど重要になると、彼らはまた、ナノ秒
microbenchmark::get_nanotime()
[1] 3.610932e+14
microbenchmark::get_nanotime()
[1] 3.610952e+14
microbenchmark::get_nanotime()
[1] 3.610958e+14
microbenchmark::get_nanotime()
[1] 3.610963e+14
で現在の時刻を返す関数を持っているパッケージの中に、あなたは正確に何を意味する
as.numeric(as.POSIXct(TIMEA)) - as.numeric(as.POSIXct(TIMEB))
私はこれがOPによってなされたコメントに関連していることを理解しますが、実際には正式な質問には答えません。いったい何を意味するのですか? –
ああ、大丈夫 –
を使用することができますか?日付は固定された時刻です。ナノ秒は、2つの時点の間にある種の測定を示唆していますか?その日以降、ナノ秒が必要ですか?ちょうどあなたが何かを試したと言っているのではなく、以前の試みを示すことが望ましいです。あなたを助けたい人にはしばしば役に立ちます。 –
もう一つのポイントは、Rがdatetime作業の一部にシステム関数を使用し、ナノ秒の精度でdatetimeを格納するシステムがないことです。ミリ秒の精度は一般的にPOSIXの精度であるからです。 –
ナノ秒の量が必要ですが、いつから始めるのですか?また、ナノ秒の精度が必要なため、提供する日付は理論上同じ精度を提供する必要があります。 – thepule