as.numeric(difftime(
strptime("12:00 AM", "%I:%M %p" ),
strptime("2:00 AM", "%I:%M %p" ),
units='hours'))
结果:NA。
我正在尝试计算时差,但有些行会产生NA值,这些值真的很烦人,这里有什么问题吗?
答案 0 :(得分:2)
要复制,请执行:
as.numeric(difftime(
strptime("12:00 AM", "%I:%M %p", tz = "Europe/Brussels" ),
strptime("2:00 AM", "%I:%M %p", tz = "Europe/Brussels" ),
units='hours'))
# [1] NA
考虑到您的行为,我预计您遇到了夏令时问题,因为您所在的区域设置在3月的最后一个星期日有夏令时变化。没有" roll" strptime
或difftime
的参数,因此您必须手动将时区设置为在该时间段内不会发生时间变化的位置(如果您想对其进行说明) ,加一个小时)。
as.numeric(difftime(
strptime("12:00 AM", "%I:%M %p", tz = "UTC" ),
strptime("2:00 AM", "%I:%M %p", tz = "UTC" ),
units='hours'))
# [1] -2