2013-07-30 2 views
2

strptime 구문 분석에 매우 이상한 동작을합니다.이상한 strptime 동작이 R

:

내가 두 경우 모두에서 예상대로 코드가 작동 R.의 다른 부 버전과 다른 컴퓨터 (리눅스)에 동일한 코드를 테스트 한

> R.Version()$version.string 
[1] "R version 2.15.2 (2012-10-26)" 
> a <- (strptime( "29-MAR-13 02.26.53.000000000 AM" , "%d-%B-%y %I.%M.%OS %p")) 
> str(a) 
POSIXlt[1:1], format: "2013-03-29 02:26:53" 
> # convert to double: doesn't work 
> as.double(a) 
[1] NA 
> b <- (strptime( "29-MAR-13 04.26.53.000000000 AM" , "%d-%B-%y %I.%M.%OS %p")) 
> #same as `a`, but another hour 
> str(b) 
POSIXlt[1:1], format: "2013-03-29 04:26:53" 
> #convert to double: works 
> as.double(b) 
[1] 1364520413 
> #WTF ??? 

윈도우 머신에 내 R 세션입니다

> R.Version()$version.string 
[1] "R version 2.15.1 (2012-06-22)" 
> a <- (strptime( "29-MAR-13 02.26.53.000000000 AM" , "%d-%B-%y %I.%M.%OS %p")) 
> str(a) 
POSIXlt[1:1], format: "2013-03-29 02:26:53" 
> # convert to double: WORKS! 
> as.double(a) 
[1] 1364513213 
> b <- (strptime( "29-MAR-13 04.26.53.000000000 AM" , "%d-%B-%y %I.%M.%OS %p")) 
> #same as `a`, but another hour 
> str(b) 
POSIXlt[1:1], format: "2013-03-29 04:26:53" 
> #convert to double: works 
> as.double(b) 
[1] 1364520413 
> 

누군가가 내게 어떤 문제가 있다고 말할 수 있습니까? R에서 버그를 발견 했습니까?

+0

나를 위해 2.15.2, 2.15.3 및 3.0.1에서 작동합니다. W7, 64 비트. –

+1

'sessionInfo() $ platform'의 출력과 OS에 관한 기타 관련 정보를 추가하십시오. – Roland

+0

은 3.1 (개발), 32 비트 우분투에서 작동하지만 다른 값을 갖습니다 (다른 시간대?) –

답변

2

이스라엘에 계십니까? 검색 일광 절약 시간제 "29 일"은 2013 년 DST가 3 월 29 일 이스라엘에서 시작되었음을 보여줍니다. http://www.timeanddate.com/worldclock/clockchange.html?n=110 ... 테스트 한 두 컴퓨터 간의 로캘/표준 시간대 설정의 차이가 이스라엘 표준 시간대로 설정되고 다른 시간대로 설정되지 않은 경우 확실히 설명 할 수 있습니다. tz="GMT" ...

PS : 내가 귀하의 프로필을보고 실제로 당신이 이스라엘에 있는지 확인하십시오. 나는 처음에 대답을 게시하기 전에 보지 않았다!

PPS : 날짜 - 시간 변환에 대한 쿼리의 매우 많은 부분이 시간대에 대한 것으로 판명, 특히 일광 절약 시간 처음에 대답를 알려준 것입니다, 문제, .

+0

이것을 이해할 수 있습니까? 사용자의 시간 "29-MAR-13 02.26.53 AM"은 자신의 시간대에 따라 해석되었습니다. strptime()가 작동했습니다. 그러나 TZ에서 R은 일광 절약 시간제가 2AM에서 3AM으로 바뀌 었음을 알려줍니다. 따라서 자신의 시간대에서 "02.26.53AM"이라고 말하는 것은 실제로 불가능합니다. 따라서 R은 사용자가 "불가능한 시간"에 넣었 기 때문에 "as.double()"는 NA를 반환합니다. 놀랄 만한! Dediction : 시계 시간은 사용자의 TZ가 아니 었습니다. 나는 그 권리를 얻었 는가? 나는 R이 시프트 시간의 시간과 함께 가을에 무엇을하는지 궁금하게 만든다. – pauljohn32

관련 문제