0

次のデータ フレームがあります。データ セットはデータベース テーブルから既にインポートされており、created_at 列には文字型があります。

sale_id      created_at
1               2016-05-28T05:53:31.042Z
2               2016-05-30T12:50:58.184Z
3               2016-05-23T10:22:18.858Z
4               2016-05-27T09:20:15.158Z
5               2016-05-21T08:30:17.337Z
6               2016-05-28T07:41:14.361Z

できればベースrライブラリを使用して、created_at列から時間と分のみを抽出するにはどうすればよいですか? 後で時間と分を貼り付けて、新しい列として配置する必要があります。

4

2 に答える 2

6

の便利な関数を使用して、列をlubridate変換し、時間と分を抽出できますcharacterDateTimeformat

library(lubridate)
v1 <- ymd_hms("2016-05-28T05:53:31.042Z")
format(v1, "%H:%M")
#[1] "05:53"

または使用のみbase R

format(as.POSIXct("2016-05-28T05:53:31.042z", format = "%Y-%m-%dT%H:%M:%S"),  "%H:%M")
#[1] "05:53"

その他のオプションには、gsub

gsub(".*T|:\\d+\\..*", "", "2016-05-28T05:53:31.042z")
#[1] "05:53"
于 2016-07-04T12:09:03.087 に答える
1

ベース R ライブラリのみを使用する:

format(as.POSIXct("2016-05-28T05:53:31.042z", format = "%Y-%m-%dT%H:%M:%S"),  "%H:%M")

05:31

UTC形式のようです。その形式の解析の詳細については、これを参照してください。

Sys.Date()例としても使用して示しましょう。

format(as.POSIXlt(Sys.time(), "America/New_York"), "%H:%M")

08:15

無限に優れたlubridateライブラリの使用:

require(lubridate)
minute(ymd_hms("2016-05-28T05:53:31.042Z"))

53

second(ymd_hms("2016-05-28T05:53:31.042Z"))

31.042

于 2016-07-04T12:09:49.457 に答える