新しいdata.table
の日付と時刻の形式を使用しています。 ITime
以来フード(午前0時からの秒数)の下で整数として格納されます。整数をITimeに変換しますか?
x <- as.ITime("10:25:00")
i <- as.integer(x)
i
[1] 37500
ITime
に(それは24 * 60 * 60未満だと仮定して)整数に変換するのに十分な簡単なはずのように思えあなたも指定した場合
as.ITime(i)
Error in as.POSIXlt.numeric(x, ...) : 'origin' must be supplied
as(i, "ITime")
Error in as(i, "ITime") :
no method or default for coercing “integer” to “ITime”
(私はas.POSIX...
に渡される集まる)起源の提供を助けるんが、でも、それだけで(とにかく私のロケールの)正しい値が得られますが、私はどのように見つけていませんよtz
を「UTC」:
as.ITime(i, origin = "1970-01-01 00:00:00")
[1] "20:25:00"
as.ITime(i, origin = "1970-01-01 00:00:00", tz = "UTC")
[1] "10:25:00"
# note that the date seems necessary but irrelevant here
as.ITime(i, origin = "2000-01-01 00:00:00", tz = "UTC")
[1] "10:25:00"
私が話していることは、私は時々chron::times
で使用しているものと類似のものである:
x <- chron::times("10:25:00")
n <- as.numeric(x)
n
[1] 0.4340278
chron::times(n)
[1] 10:25:00
はITime
クラスで利用可能(代わりに数字/倍精度/浮動小数点数の整数を使用除く)と同様の方法であり、 ?
注私はIDate
と同じ「起源必要」問題、Date
などを認識してんだけど、origin="1970-01-01"
として「真夜中」を使用した場合と比較して堅牢な標準のはるかに少ないですので、それは私に多くの意味があります時間の起源(私は、日付を「起源」と呼ぶべきである異なるアイデアを持ついくつかのデータソースを使用する)。
SETATTRクラスはそれを行う必要があります。 – Frank
本当にありがとう、フランク!もしあなたが望むなら、あなたのコメントを答えに変えてください。私はそれを受け入れます。 – rosscova
あなたは 'setattr'でどのようにそれを達成しますか? –