2

日時の問題で困っています。私のデータ フレームは次のようになり、各人がテレビを視聴する時間を見つけたいと考えています。

Start.Time <- c(193221,201231,152324,182243,123432,192245)
End.Time <- c(202013,211232,154521,183422,133121,201513)
cbind(Start.Time,End.Time)

計算できるようにするために、さまざまな方法でそれらを変換しようとしましたが、重要な結果は得られませんでした。

as.POSIXct(Start.Time , origin="2015-11-01")

私の結果は完全に間違っています

[1] "2015-11-03 05:40:21 GMT" "2015-11-03 07:53:51 GMT"
[3] "2015-11-02 18:18:44 GMT" "2015-11-03 02:37:23 GMT"
[5] "2015-11-02 10:17:12 GMT" "2015-11-03 05:24:05 GMT"

たとえば、193221 を 19:32:21 HH:MM:SS にしたい

簡単に変換できるパッケージはありますか? 可能であれば、日付を表示したくありません。時間だけを表示します。

4

1 に答える 1

1

次のように、数値を実際のタイムスタンプ (POSIXct 形式) に変換できます。

Start.Time <- c(193221,201231,152324,182243,123432,192245)
Start.POSIX <- as.POSIXct(as.character(Start.Time), format = "%H%M%S")
Start.POSIX
## [1] "2015-12-19 19:32:21 CET" "2015-12-19 20:12:31 CET" "2015-12-19 15:23:24 CET"
## [4] "2015-12-19 18:22:43 CET" "2015-12-19 12:34:32 CET" "2015-12-19 19:22:45 CET"

ご覧のとおりas.POSIXct、時刻が現在の日付に属すると想定しています。POSIXct は常に特定の瞬間を表すため、時刻だけでなく日付も含まれます。これらを使用して簡単に計算できるようになりました。

End.Time <- c(202013,211232,154521,183422,133121,201513)
End.POSIX <- as.POSIXct(as.character(End.Time), format = "%H%M%S")
End.POSIX - Start.POSIX
## Time differences in mins
## [1] 47.86667 60.01667 21.95000 11.65000 56.81667 52.46667

POSIXct オブジェクトを印刷すると (上記のようにStart.POSIX)、それらは実際に文字に変換され、印刷されます。"日付が前後しているので、これを見ることができます。印刷時に使用される形式を制御できるため、次のようにのみ時間を印刷できます。

format(Start.POSIX, "%H:%M:%S")
## [1] "19:32:21" "20:12:31" "15:23:24" "18:22:43" "12:34:32" "19:22:45"
于 2015-12-19T11:47:24.620 に答える