我有一个时间格式如下的数据框:
Time
01.01.2017 01:00
01.01.2017 02:00
01.01.2017 03:00
01.01.2017 04:00
01.01.2017 05:00
01.01.2017 06:00
class(df$Time)
[1] "factor"
Run Code Online (Sandbox Code Playgroud)
它的日,月,年,小时,分钟。我想将其转换为可读时间。我已经尝试过了:
strptime(df$Time, format="%d-%m-%Y %H:%M")
as.POSIXct(df$Time)
Run Code Online (Sandbox Code Playgroud)
它不起作用。如何将其转换并将格式更改为:2017-01-01 01:00。所以我要有年,月,日,小时,分钟。
阅读?strptime您需要format成为
strptime("01.01.2017 01:00", format="%d.%m.%Y %H:%M")
#[1] "2017-01-01 01:00:00"
Run Code Online (Sandbox Code Playgroud)
如果您需要采用特定格式的输出,我们可以使用 format
format(strptime("01.01.2017 01:00", format="%d.%m.%Y %H:%M"), "%Y-%m-%d %H:%M")
#[1] "2017-01-01 01:00"
Run Code Online (Sandbox Code Playgroud)
同样可以使用 as.POSIXct
as.POSIXct("01.01.2017 01:00", format="%d.%m.%Y %H:%M")
Run Code Online (Sandbox Code Playgroud)
或者忽略指定格式直接使用 lubridate::dmy_hm
lubridate::dmy_hm("01.01.2017 01:00")
Run Code Online (Sandbox Code Playgroud)
@ 42-提到的一件事要注意的是,尽管它们的输出看起来是相同的,但是format是一个字符值,而as.POSIXctand 的输出strptime是一个日期时间值。