2014-01-08 24 views

回答

3

的問題是夏令時間,開始在這些時間點。從3/10/2010 2:00到3/10/2010 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應該優雅地處理,例如返回NA

1

我得到的錯誤

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定義。你可以在這裏提交錯誤報告:

https://github.com/hadley/lubridate/issues

+1

我已經報道過這個。 – Roland

+0

@Roland我認爲你是在Windows上?在Mac的家中,這並沒有返回錯誤,但在Win7上工作時,我得到了同樣的錯誤。它看起來是OS特定的。 –

+0

@ SimonO'Hanlon是的,我正在運行Win7,但問題可能與'lubridate'版本有關。 'packageVersion(「lubridate」)'爲我返回'1.3.1'。這是你的Mac機上的情況嗎? –

相關問題