r语言 - 如何在大型数据集中将"char"列转换为日期时间列



我正在处理大型数据集,其中一列表示为char数据类型而不是DateTime数据类型。我尝试转换,但我无法转换它。

对于这个问题你能提出什么建议吗?这对我很有帮助

Thanks in advance

我现在正在使用的代码

c_data$dt_1 <- lubridate::parse_date_time(c_data$started_at,"ymd HMS")

得到输出:

2027- 05- 20 20:10:03 

但是期望的输出是

2020-05-20 10:03

这是使用lubridate的另一种方法:

library(lubridate)
df <- tibble(start_at = c("27/05/2020 10:03", "25/05/2020 10:47"))
df %>%
mutate(start_at = dmy_hms(start_at))
# A tibble: 2 x 1
start_at           
<dttm>             
1 2020-05-27 20:10:03
2 2020-05-25 20:10:47

在R中,日期和时间只有一种格式。你可以改变它的格式为你需要的格式,但它的类型是字符。

如果你想用year-month-day min-sec的格式保存数据,你可以使用format作为-

format(Sys.time(), '%Y-%m-%d %M:%S')
#[1] "2021-08-27 17:54"

对于整个列,您可以将其应用为-

c_data$dt_2 <- format(c_data$dt_1, '%Y-%m-%d %M:%S')

阅读?strptime以获得不同的格式化选项。

使用anytime

library(dplyr)
library(anytime)
addFormats("%d/%m/%Y %H:%M")
df %>%
mutate(start_at = anytime(start_at))

与产出

# A tibble: 2 x 1
start_at           
<dttm>             
1 2020-05-27 10:03:00
2 2020-05-25 10:47:00

最新更新