28

Rの潤滑剤パッケージについて簡単な質問があります。エポックからの秒単位の一連のタイムスタンプがあります。これをYYYY-MM-DD-HH形式に変換したい。ベースRでは、最初に日付形式に変換するためにこのようなことを行うことができます

> x = as.POSIXct(1356129107,origin = "1970-01-01",tz = "GMT")
> x
[1] "2012-12-21 22:31:47 GMT"

上記は、YYYY-MM-DD-HH形式ではなく、日付形式に変換するだけであることに注意してください。潤滑剤でこれをどのように行うのですか?ベースRを使用してどうすればよいですか?

よろしくお願いします

4

3 に答える 3

36

lubridateこれを本当に簡単にするために、デフォルトの起点時刻としてUNIXas_datetime()エポック時刻がたまたまあります。

> as_datetime(1356129107)
[1] "2012-12-21 22:31:47 UTC"

詳細については、https ://rdrr.io/cran/lubridate/man/as_date.htmlをご覧ください。

于 2017-10-13T17:18:17.480 に答える
14

ダークは正しいです。ただし、潤滑機能を使用する場合は、次のようにします。

paste( year(dt), month(dt), mday(dt), hour(dt) sep="-")

一方、POSIXctオブジェクトが使用されるはずの方法でオブジェクトを処理したい場合は、次の条件を満たす必要があります。

format(x, format="%Y-%m-%d-%H")
于 2012-12-21T23:21:34.203 に答える
1

@leerssejが提供する潤滑剤ソリューションを使用します

しかし、ベースRで@IRTFMのソリューションを好むが、分と秒も必要な場合は、その方法の例を次に示します。

as.POSIXct("2019-03-15 16:17:42" , format="%Y-%m-%d %H:%M:%OS")
于 2020-07-04T16:41:12.647 に答える