我在 R,all_symbols$Time 中有一个时间向量,我试图找出如何获取时间(或将时间转换为字符串而不丢失信息)。我用
strptime(all_symbol$Time[j], format="%H:%M:%S")
由于某种原因假设日期是今天并返回
[1] 《2013-10-18 09:34:16》
R 中的日期和时间格式非常烦人。我试图只在不添加太多软件包的情况下获得时间(真的任何——我在无法安装库的学校计算机上)。
使用strptime
后,您必然会获得一个日期时间对象,并且格式字符串中没有日期的默认行为是假设今天的日期。如果您不喜欢这样,则需要在前面添加一个字符串,该字符串是您选择的日期。
@James 的建议等同于我的建议:
format(all_symbol$Time[j], format="%H:%M:%S")
我所知道的唯一具有时间类的包(即没有关联日期值的时间)是包:chron。但是,我发现使用格式作为从 POSIXt 对象输出字符值的一种方式非常适合需要因子输入的函数。
最近遇到了同样的问题,发现这个帖子和其他帖子R:如何处理没有日期的时间?鼓舞人心。我想为有类似问题的人贡献一点。
如果您只想以 R 为基础,请利用as.Date(..., format = ("..."))
将日期转换为标准格式。然后,您可以使用substr
来提取时间。例如substr("2013-10-01 01:23:45 UTC", 12, 16)
给你01:23
。
如果您可以使用 package lubridate
,那么类似的功能mdy_hms
将使生活变得更加轻松。并且substr
大部分时间都在工作。
如果要比较时间,如果它们在 Date 或 POSIXt 对象中,它应该可以工作。如果您只想要时间部分,则可能将其强制转换为数字(您可能需要稍后将其转换回来)。例如as.numeric(hm("00:01"))
给60
,这意味着它是 00:00:00 之后的 60 秒。as.numeric(hm("23:59"))
会给86340
。