2012-11-19 8 views
77

私は均等に分布した時系列でプロットし、計算を実行しています。タイムスタンプは現在、UNIXエポック(例えば、1352068320)からの秒数を表す整数として格納されますが、Dateオブジェクトがプロットするのが適切です。どのように変換を行うことができますか?UNIXエポックをDateオブジェクトに変換する

私は?Date,?as.Dateおよび??epochと読みましたが、その情報を見逃しているようです。

答えて

136

POSIXctを経由して、あなたはそこにTZを設定したい - ここにあなたが私の(シカゴ)デフォルト参照:

R> val <- 1352068320 
R> as.POSIXct(val, origin="1970-01-01") 
[1] "2012-11-04 22:32:00 CST" 
R> as.Date(as.POSIXct(val, origin="1970-01-01")) 
[1] "2012-11-05" 
R> 

編集:数年後、私たちは今anytimeパッケージを使用することができました:

R> library(anytime) 
R> anytime(1352068320) 
[1] "2012-11-04 16:32:00 CST" 
R> anydate(1352068320) 
[1] "2012-11-04" 
R> 

このすべてがいかなる形式または起源引数なしでどのように機能するかに注意してください。

+7

私は '1415560016876'のようなタイムスタンプを持っています。 http://www.epochconverter.com/これを問題のない日付に変換します。上記のコードは私に ''のようなものを与える46832-11-09 12:47:33 EDT "' ... –

+20

これを1000で除算してみてください: 'as.POSIXct(1415560016876/1000、origin =" 1970-01-01 " ) 'は2014-11-09 13:06:56.875 CSTを取得し、_seconds_(Rの場合)または_milliseconds_(秒)が必要かどうかを確認する必要があります。 –

+1

それはトリックをした、ありがとう! –

関連する問題