我正在处理大型数据集,其中一列表示为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