如何转换时间R的格式?
我有一个时间数据框,格式如下:如何转换时间R的格式?,r,datetime,R,Datetime,我有一个时间数据框,格式如下: 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" 它的日、月、年、小时、分钟。我想把它转换成可读的时间。我已经试过了: strptime(df$Time, format="%d-%m-%Y %H:%M") as.POSIXct(df$T
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"
它的日、月、年、小时、分钟。我想把它转换成可读的时间。我已经试过了:
strptime(df$Time, format="%d-%m-%Y %H:%M")
as.POSIXct(df$Time)
它不起作用。如何将其转换并将格式更改为:2017-01-01:00。所以我想有年,月,日,小时,分钟 读取
?strtime
您需要使用格式
strptime("01.01.2017 01:00", format="%d.%m.%Y %H:%M")
#[1] "2017-01-01 01:00:00"
如果您需要以特定格式输出,我们可以使用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"
这同样适用于as.POSIXct
as.POSIXct("01.01.2017 01:00", format="%d.%m.%Y %H:%M")
或者直接使用lubridate::dmy\u hm忽略指定格式
lubridate::dmy_hm("01.01.2017 01:00")
如@42-所述,需要注意的一点是,尽管它们看起来相同,format
的输出是一个字符值,而as.POSIXct
和strtime
的输出是一个日期时间值 读取?strtime
您需要使用格式
strptime("01.01.2017 01:00", format="%d.%m.%Y %H:%M")
#[1] "2017-01-01 01:00:00"
如果您需要以特定格式输出,我们可以使用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"
这同样适用于as.POSIXct
as.POSIXct("01.01.2017 01:00", format="%d.%m.%Y %H:%M")
或者直接使用lubridate::dmy\u hm忽略指定格式
lubridate::dmy_hm("01.01.2017 01:00")
如@42-所述,需要注意的一点是,尽管它们看起来相同,format
的输出是一个字符值,而as.POSIXct
和strtime
的输出是一个日期时间值 我们可以随时使用
librrary(anytime)
anytime(df$Time)
#[1] "2017-01-01 01:00:00 EST" "2017-01-01 02:00:00 EST" "2017-01-01 03:00:00 EST" "2017-01-01 04:00:00 EST"
#[5] "2017-01-01 05:00:00 EST" "2017-01-01 06:00:00 EST"
注意:这篇文章有多个副本
或的可能复制品
数据
df我们可以随时使用
librrary(anytime)
anytime(df$Time)
#[1] "2017-01-01 01:00:00 EST" "2017-01-01 02:00:00 EST" "2017-01-01 03:00:00 EST" "2017-01-01 04:00:00 EST"
#[5] "2017-01-01 05:00:00 EST" "2017-01-01 06:00:00 EST"
注意:这篇文章有多个副本
或的可能复制品
数据
df谢谢!我明白了,我犯了一个小错误!非常感谢@罗纳克。通过强调format.POSIXt的结果是字符值而不是日期时间值,您的答案会有所改进,尽管它们在控制台级别上看起来是相同的。@42-谢谢。我已经相应地更新了答案。谢谢!我明白了,我犯了一个小错误!非常感谢@罗纳克。通过强调format.POSIXt的结果是字符值而不是日期时间值,您的答案会有所改进,尽管它们在控制台级别上看起来是相同的。@42-谢谢。我已相应地更新了答案。您在strtime
中给出的格式应遵循您的日期格式。您的日期用
分隔,而不是用-
分隔。基本上是typo@camille你认为这不是一个好主意吗dupe@akrun键入-
而不是
是一种打字错误。除此之外,还有很多关于格式化日期的帖子。如果你有一个好的dupe候选人,你可以标记它。你在strtime
中给出的格式应该遵循你的日期格式。您的日期用
分隔,而不是用-
分隔。基本上是typo@camille你认为这不是一个好主意吗dupe@akrun键入-
而不是
是一种打字错误。除此之外,还有很多关于格式化日期的帖子。如果你有一个好的受骗候选人,你可以标记它。