读取mdy_hms AM / PM关闭excel到r
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了读取mdy_hms AM / PM关闭excel到r相关的知识,希望对你有一定的参考价值。
我正在使用dplyr和lubridate。
我正在使用read_excel将data.frame从excel导出到R中。在Excel中,我有一个由mdy_hms AM或PM组成的列。在R中,我的代码包括:
df$dateTimeEtc
这打印出一个例子:
"2017-03-07 11:10:37 UTC" "2017-03-22 10:04:42 UTC" "2017-03-08 09:36:49 UTC"
但是,我试过用:
df <- df %>%
mutate(dateTimeEtc = mdy_hms(dateTimeEtc))
因此R在mdy_hms中识别这些数据点(不确定如何包括AM / PM)格式。但是,这行代码将我的所有数据点转换为NA。理想情况下,我宁愿R将这些数据点读取为只有mdy因此我可以与其他mdy数据点进行比较。
另一个目标是在此列中找到最大和最小数据点。
提前致谢
答案
我建议您尽可能长时间地保留日期或日期时间格式的所有时间轴数据,以便进行计算和排序。根据我的经验,mdy
在最后一步更有意义作为格式选择,因为R根本没有将mdy
数据视为日期,而是作为字符串。因此,如果您尝试在mdy
中计算任何内容或将其可视化,您将获得意外结果。
library(dplyr); library(lubridate)
df = data_frame(dateTimeEtc = c("2017-03-07 11:10:37 UTC",
"2017-03-22 18:04:42 UTC",
"2017-03-08 09:36:49 UTC"))
df
#> # A tibble: 3 x 1
#> dateTimeEtc
#> <chr>
#> 1 2017-03-07 11:10:37 UTC
#> 2 2017-03-22 18:04:42 UTC
#> 3 2017-03-08 09:36:49 UTC
# Convert character to datetime POSIXct (if not already that format),
# then make a character string in mdy format and 12 hour clock.
df2 <- df %>%
mutate(dateTimeEtc2 = ymd_hms(dateTimeEtc),
as_mdy = format(dateTimeEtc2, '%m/%d/%Y %I:%M:%S %p'))
df2
#> # A tibble: 3 x 3
#> dateTimeEtc dateTimeEtc2 as_mdy
#> <chr> <dttm> <chr>
#> 1 2017-03-07 11:10:37 UTC 2017-03-07 11:10:37 03/07/2017 11:10:37 AM
#> 2 2017-03-22 18:04:42 UTC 2017-03-22 18:04:42 03/22/2017 06:04:42 PM
#> 3 2017-03-08 09:36:49 UTC 2017-03-08 09:36:49 03/08/2017 09:36:49 AM
以上是关于读取mdy_hms AM / PM关闭excel到r的主要内容,如果未能解决你的问题,请参考以下文章
将 AM PM 时间字符串存储到 MySQL 中的 TIME 数据类型中,并在显示时使用 AM PM 检索?
用Perl读取Excel文件,Spreadsheet::Read.pm库介绍
上班时间 下班时间 8:30AM 5:30PM 7:30AM 10:30PM 1:30AM 10:00PM 4:30AM 12:00PM 8:00AM 5:00PM 7:00AM 1