Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何转换时间R的格式?_R_Datetime - Fatal编程技术网

如何转换时间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键入
-
而不是
是一种打字错误。除此之外,还有很多关于格式化日期的帖子。如果你有一个好的受骗候选人,你可以标记它。