运行这些时出现错误:
library(lubridate)
dmy_hm("3/10/2010 2:00",tz="Australia/Melbourne")
dmy_hm("2/10/2011 2:00",tz="Australia/Melbourne")
只有我吗?
问题是从这些时间点开始的夏令时。从 2010 年 3 月 10 日 2:00 到 2010 年 3 月 10 日 2:59 的任何时间都不存在于该时区。
library(lubridate)
dmy_hm("3/10/2010 1:59",tz="Australia/Melbourne")
#[1] "2010-10-03 01:59:00 EST"
dmy_hm("3/10/2010 2:00",tz="Australia/Melbourne")
#Error: evaluation nested too deeply: infinite recursion / options(expressions=)?
#Error during wrapup: evaluation nested too deeply: infinite recursion / options(expressions=)?
dmy_hm("3/10/2010 2:01",tz="Australia/Melbourne")
#Error: evaluation nested too deeply: infinite recursion / options(expressions=)?
#Error during wrapup: evaluation nested too deeply: infinite recursion / options(expressions=)?
dmy_hm("3/10/2010 2:59",tz="Australia/Melbourne")
#Error: evaluation nested too deeply: infinite recursion / options(expressions=)?
#Error during wrapup: evaluation nested too deeply: infinite recursion / options(expressions=)?
dmy_hm("3/10/2010 3:00",tz="Australia/Melbourne")
#[1] "2010-10-03 03:00:00 EST"
然而, lubridate 应该优雅地处理这个问题,例如, return NA
。
我得到错误
Error: evaluation nested too deeply: infinite recursion / options(expressions=)?
使用traceback()
,发生错误时的调用堆栈如下所示
...
10: .local_parse(x[new_na])
9: .local_parse(x[new_na])
8: .local_parse(x[new_na])
7: .local_parse(x[new_na])
6: .local_parse(x[new_na])
5: .local_parse(x[to_parse], TRUE)
4: parse_date_time(dates, orders, tz = tz, locale = locale, quiet = quiet)
3: as.POSIXct(parse_date_time(dates, orders, tz = tz, locale = locale,
...
2: .parse_xxx_hms(..., orders = "dmyR", quiet = quiet, tz = tz,
...
1: dmy_hm("2/10/2011 2:00", tz = "Australia/Melbourne")
所以这是一个错误.local_parse
,它是在里面定义的parse_date_time
。您可以在此处提交错误报告: