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