2016-05-12 7 views
0

私は現在xとxの間に計算された開始時刻を計算しようとしています。私は今だけの日数を考慮時差のある計算R

> difftime(Sys.time(), x, units="hours") 
Time differences in hours 
[1] -696.0873 -696.0873 -672.0873 -696.0873 

計算を試してみて、私は今、イベント開始までの間時間の正確な量を必要とする24に掛ける

> x 
[1] 2016-06-11T13:00Z 2016-06-11T19:00Z 2016-06-10T19:00Z 2016-06-11T16:00Z 

誰かが助けてください..

+3

これらはxtsオブジェクトからのインデックスのように見え、実際にはテキストです。 'dput(x)'を投稿してください。 –

答えて

0
デモとして3600で 時間分割に変換することができます の違い返し差が直接 -機能を経由して計算することができ

時間:

> time1 <- Sys.time() 
> time1 
[1] "2016-05-12 22:23:58 EDT" 
> time2 <- Sys.time() 
> time2 
[1] "2016-05-12 22:24:16 EDT" 
> time2 - time1 
Time difference of 17.79894 secs 
> as.numeric(time2 - time1)/3600 
[1] 0.004944149 

あなたのケースでは、as.numeric(x - Sys.time())/3600があなたに適しています。 round()あなたが望むようにそれを特定の数字に変換します。

+0

こんにちは、 お返事ありがとうございます。私はまだ同じ時間量を得る。 > as.numeric(x-Sys.time())/ 3600 [1] -406424.2 -406424.2 -406424.2 -406424.2 時間数も奇妙です。およそ700時間かかるはずです。私はxで時刻形式を変更する必要がありますか? – samot79

+0

時間が間違って書式設定されている可能性があります。 〜40600時間は、1970年1月1日の初めの経過時間です。「dput」コマンドを使用してデータのサンプルを提供し、データが正確にわかるように質問を編集してください。 – Dave2e

+0

xを日付時刻オブジェクトに変換するには、 'as.numeric(as.POSIXct(x)-Sys.time())/ 3600'を使用してみてください。 – Psidom