Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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中使用strTime()保持午夜(00:00h)?_R_Date_Datetime_Format_Posixct - Fatal编程技术网

如何在R中使用strTime()保持午夜(00:00h)?

如何在R中使用strTime()保持午夜(00:00h)?,r,date,datetime,format,posixct,R,Date,Datetime,Format,Posixct,我有一个数据框df,它的日期因子变量格式如下: 2015-12-15 10:00:00 2015-12-19 12:00:00 2015-12-20 20:00:00 这是每小时的数据。当看到午夜00:00:00时,问题就出现了,因为它不是在这个小时出现的。它只是说: 21/12/2015 如你所见,它只说了一天,却没有时间。 因此,我使用strtime转换为日期格式,使用: df$date <- strptime(df$date,"%d/%m/%Y %H:%M") 我真的很感谢一些

我有一个数据框df,它的日期因子变量格式如下:

2015-12-15 10:00:00
2015-12-19 12:00:00
2015-12-20 20:00:00
这是每小时的数据。当看到午夜00:00:00时,问题就出现了,因为它不是在这个小时出现的。它只是说:

21/12/2015
如你所见,它只说了一天,却没有时间。 因此,我使用strtime转换为日期格式,使用:

df$date <- strptime(df$date,"%d/%m/%Y %H:%M")

我真的很感谢一些帮助,因为我已经在StackOverflow和其他论坛上查看了以前的帖子,但我还没有找到这个特定问题的解决方案

如果我们有一个
向量
像“v1”,通过使用
strtime
我们可以得到那些格式不正确的元素的NA

strptime(v1,  "%d/%m/%Y %H:%M:%S", tz = "UTC")
#[1] "2015-12-19 12:00:00 UTC" NA  
纠正此问题的一种方法是为那些没有“00:00:00”字符串的用户粘贴“00:00:00”字符串

v1[!grepl(":", v1)] <- paste(v1[!grepl(":", v1)], "00:00:00") 
strptime(v1,  "%d/%m/%Y %H:%M:%S", tz = "UTC")
#[1] "2015-12-19 12:00:00 UTC" "2015-12-19 00:00:00 UTC"
数据
v1如果我们有一个像“v1”这样的
vector
,通过使用
strtime
我们可以得到那些格式不正确的元素的NA

strptime(v1,  "%d/%m/%Y %H:%M:%S", tz = "UTC")
#[1] "2015-12-19 12:00:00 UTC" NA  
纠正此问题的一种方法是为那些没有“00:00:00”字符串的用户粘贴“00:00:00”字符串

v1[!grepl(":", v1)] <- paste(v1[!grepl(":", v1)], "00:00:00") 
strptime(v1,  "%d/%m/%Y %H:%M:%S", tz = "UTC")
#[1] "2015-12-19 12:00:00 UTC" "2015-12-19 00:00:00 UTC"
数据 R的文件中的v1(增加重点):

格式

字符串。格式方法的默认值为“%Y-%m-%d%H:%m:%S”如果任何元素的时间成分不是午夜,则为“%Y-%m-%d”,否则为。如果设置了选项(“digits.secs”),则最多可打印指定数字数秒

因此,信息仍然存在,您只需对其进行
格式化
即可将其与时间组件一起打印出来

> midnight <- strptime("2015-12-19 00:00:00","%Y-%m-%d %H:%M")
> midnight
[1] "2015-12-19 EST"
> format(midnight,"%Y/%m/%d %H:%M")
[1] "2015/12/19 00:00"
>午夜
[1] “美国东部时间2015-12-19”
>格式(午夜,“%Y/%m/%d%H:%m”)
[1] "2015/12/19 00:00"
来自R的文档(重点添加):

格式

字符串。格式方法的默认值为“%Y-%m-%d%H:%m:%S”如果任何元素的时间成分不是午夜,则为“%Y-%m-%d”,否则为。如果设置了选项(“digits.secs”),则最多可打印指定数字数秒

因此,信息仍然存在,您只需对其进行
格式化
即可将其与时间组件一起打印出来

> midnight <- strptime("2015-12-19 00:00:00","%Y-%m-%d %H:%M")
> midnight
[1] "2015-12-19 EST"
> format(midnight,"%Y/%m/%d %H:%M")
[1] "2015/12/19 00:00"
>午夜
[1] “美国东部时间2015-12-19”
>格式(午夜,“%Y/%m/%d%H:%m”)
[1] "2015/12/19 00:00"

这些不能是data.frame中日期变量的格式。如果是这样,格式字符串
%d/%m/%Y%H:%m“
不应适用于其中任何一个。这表示“日/月/年小时:分钟”,而不是“年-月-日小时:分钟:秒”。请务必提供一个可复制的示例。我认为问题只是POSIXct日期的字符串表示。。。打印POSIXct对象时,默认情况下,它会在00:00:00时隐藏时间部分,但信息仍然存在。。。只需尝试使用
格式(日期,“%Y/%m/%d%H:%m”)
打印即可。这些格式不能是data.frame中日期变量的格式。如果是这样,格式字符串
%d/%m/%Y%H:%m“
不应适用于其中任何一个。这表示“日/月/年小时:分钟”,而不是“年-月-日小时:分钟:秒”。请务必提供一个可复制的示例。我认为问题只是POSIXct日期的字符串表示。。。打印POSIXct对象时,默认情况下,它会在00:00:00时隐藏时间部分,但信息仍然存在。。。只需尝试使用
格式(日期,“%Y/%m/%d%H:%m”)打印即可。