如何解决将时间和日期分为不同的列格式= 2019-05-26T13:50:56.335288Z
在我的数据中,时间和日期存储在“ cord”列中(class = factor)。我想将日期和时间分成两个单独的列。
数据如下:
1 2019-05-26T13:50:56.335288Z
2 2019-05-26T17:55:45.348073Z
3 2019-05-26T18:12:00.882572Z
4 2019-05-26T18:26:49.577310Z
我已成功使用以下方法提取日期:cord$Date <- as.POSIXct(cord$Time)
但是我还无法找到一种以“ H:M:S”格式提取时间的方法。
dput(head(cord$Time))
的输出返回一长串时间戳:“ 2020-04-02T13:34:07.746777Z”,“ 2020-04-02T13:41:11.095014Z”,
“ 2020-04-02T14:08:05.508818Z”,“ 2020-04-02T14:17:10.337101Z”,依此类推...
解决方法
提取H:M:S
library(lubridate)
format(as_datetime(cord$Time),"%H:%M:%S")
#> [1] "13:50:56" "17:55:45" "18:12:00" "18:26:49"
如果您还需要毫秒:
format(as_datetime(cord$Time),"%H:%M:%OS6")
#> [1] "13:50:56.335288" "17:55:45.348073" "18:12:00.882572" "18:26:49.577310"
电线在哪里:
cord <- read.table(text = " Time
1 2019-05-26T13:50:56.335288Z
2 2019-05-26T17:55:45.348073Z
3 2019-05-26T18:12:00.882572Z
4 2019-05-26T18:26:49.577310Z ",header = TRUE)
,
我通常使用lubridate
和data.table
来进行日期和操作。这对我有用,可以将您的某些原始日期复制为字符串
library(lubridate)
library(data.table)
x <- c("2019-05-26T13:50:56.335288Z","2019-05-26T17:55:45.348073Z")
# lubridate to parse to date time
y <- parse_date_time(x,"ymd HMS")
# data.table to split in to dates and time
split_y <- tstrsplit(y," ")
dt <- as.data.table(split_y)
setnames(dt,"Date","Time")
dt[]
# if you use data.frames instead
df <- as.data.frame(dt)
df
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。