2016-10-14 8 views
1

제목 자체 설명입니다. 나는 df 첫 번째 열이 "14-OCT-2016"으로 끝까지 내려갔습니다. 사전에동물원에서 "14-OCT-2016"또는 "% dd- % mon- % YYYY"를 읽는 방법은 무엇입니까? r/zoo/xts

Error in as.POSIXlt.character(as.character(x), ...) : 
    character string is not in a standard unambiguous format 

감사 : 내가 수있는 마지막 하나

df$NAV.Date <- as.Date(df$NAV.Date, "%Y %b %d") # this replaces all values with NA 

df$NAV.Date <- strftime(test$NAV.Date, format="%Y %b %d") 

: 내가 바라 보았다이 df

.xts 나는 읽을 필요가있다.

답변

0

이것은 sys-locale 문제입니다 (대부분). 여기를 해결하는 방법은 다음과 같습니다 도움이

test<-"14-OCT-2016" 
lct<-Sys.getlocale("LC_TIME") 
Sys.setlocale("LC_TIME","C") #moves you to the right locale 
date<-as.Date(test, "%d-%b-%Y") 
print(date) 
Sys.setlocale("LC_TIME",lct) #moves you back again 

희망 : D 두 번째 문제를 들어

, 당신은 lubridate를 사용할 필요가 대신

library(lubridate) 
parse_date_time("12-OCT-2015", tz="UTC", c("dbY", "dby"), locale = "C") 
parse_date_time("12-OCT-15", tz="UTC", c("dbY", "dby"), locale = "C") 
+0

도움 주셔서 감사합니다. 내 문제가 부분적으로 해결되었습니다. 나는 지금 나쁜 입장을 가지고있는 것처럼 보입니다. 나는 단지 "16-FEB-2015"대신에 "16-Feb-15"로 입력 된 데이터 세트가 더 많이 있다고 (5m 행이 있다고 가정 할 수 있습니다.) 해당 특정 행에 대해 "0015-02-16"코드를 사용할 때 얻을. 이것을 고려하여 조정할 수 있습니까? –

+0

@ AlexBădoi 업데이트 된 답변보기. 그것은 둘 다 처리 할 수 ​​있습니다. 이에 따라'tz' 시간대 인자를 조정해야합니다. 위 예제에서 "UTC"로 설정하면 – user3293236

0

한 줄 솔루션은 하나를 다음이다 , 패키지의 도움으로 anytime :

test <- "14-OCT-2016" 
date <- anytime::anydate(test) 
#[1] "2016-10-14" 

두 번째 문제 해결할 수 있습니다 lubridate :

test2 <- "16-Feb-15" 
date2 <- lubridate::dmy(test2) 
#[1] "2015-02-16" 
+0

모든 것이 잘 작동합니다. 그러나 "16-FEB-2015"대신 "16-Feb-15"로 입력 된 데이터 세트 중 하나에 밴드 항목이있는 것 같습니다. 언제든지이를 포함 할 수 있습니까? 이 셀은 비어있는 채로 남아 있습니다. –

+0

위의 수정 사항을 참조하십시오. –