값이 "2012-04-15 16:49:36 CEST"인 POSIXct 변수가 있습니다.형식입니다. POSIXct as as.POSIXct 변환 문제
- 퍼센트의 Y : 포맷 기능이 예제이 덜 익숙한 2012 15 0 형식의 설명은, 올해의 주와 소수의 평일, 년 반환 년 세기로.
- % W : 월요일을 첫 번째 요일로 사용하는 십진수 (00-53)의 주를 나타냅니다 (일반적으로 주 1의 첫 번째 월요일 인 의 첫 번째 월요일). 영국 대회.
- % w : 10 진수로 표시되는 평일 (0-6, 일요일은 0).
그런 다음 값을 POSIXct 변수로 다시 변환하려고 시도하고 예기치 않은 상황이 발생합니다. 값을 읽을 때 함수가 잘못된 날짜를 해석하는 것 같습니다 (2012-04-08). 그러나 놀랍게도 Sys.time()을 사용하여 두 번째 예제에서 동일한 절차를 수행하면 예상대로 작동합니다. 누군가 첫 번째 예제에서 작동하지 않는 이유를 설명 할 수 있습니까?
(TS <- structure(1334501376, class = c("POSIXct", "POSIXt")))
(TS_YWw <- format(TS,format="%Y %W %w"))
as.POSIXct(TS_YWw,format="%Y %W %w")
(TS <- Sys.time())
(TS_YWw <- format(TS,format="%Y %W %w"))
as.POSIXct(TS_YWw,format="%Y %W %w")
그런데 출력
> (TS <- structure(1334501376, class = c("POSIXct", "POSIXt")))
[1] "2012-04-15 16:49:36 CEST"
> (TS_YWw <- format(TS,format="%Y %W %w"))
[1] "2012 15 0"
> as.POSIXct(TS_YWw,format="%Y %W %w")
[1] "2012-04-08 CEST"
>
> (TS <- Sys.time())
[1] "2013-05-16 15:27:44 CEST"
> (TS_YWw <- format(TS,format="%Y %W %w"))
[1] "2013 19 4"
> as.POSIXct(TS_YWw,format="%Y %W %w")
[1] "2013-05-16 CEST"
, 나는 R 2.15.3와 윈도우 XP 32 비트 시스템에서 코드를 실행했습니다. 다들 감사 해요!
이 문제를 더 잘 보여 '형식 (as.POSIXct를 ("2012-01-01 CEST") 포맷 = "%의 Y % W % 번 w"); POSIXct ("2012 1 0", format = "% Y % W % w")'. 2012-01-01 일요일이었다. 일요일에 시작된 2006 년에도 같은 문제가 있습니다. – Roland
이 버그는 알려져 있습니다 : https://bugs.r-project.org/bugzilla3/show_bug.cgi?id=15195 – Roland
이 버그는 최근에 수정되었습니다 : http://sourceware.org/bugzilla/show_bug.cgi?id = 15100 – Emer