2017-12-18 16 views
0

다음 문자 벡터를 날짜 클래스로 변환하려고합니다. 나는 다음과 같은 결과 및 경고 메시지를 얻을 lubridate 패키지와 함께 날짜를 변환 할 때R 패키지 lubrid를 사용하여 문자 날짜를 파싱하지 못했습니다.

> library(lubridate) 
> unemployment_rate$month 

[1] "2017-1-1" "2017-2-1" "2017-3-1" "2017-4-1" "2017-5-1" "2017-6-1" "2017-7-1" "2017-8-1" "2017-9-1" "2017-10-1" "2017-11-1" "2017-12-1" 
[13] "2016-1-1" "2016-2-1" "2016-3-1" "2016-4-1" "2016-5-1" "2016-6-1" "2016-7-1" "2016-8-1" "2016-9-1" "2016-10-1" "2016-11-1" "2016-12-1" 

그러나 :

> unemployment_rate$month <- ymd(unemployment_rate$month, "%Y-%m-%d") 

Error in `$<-.data.frame`(`*tmp*`, "month", value = c(17167, 17198, 17226, : 
    replacement has 25 rows, data has 24 
In addition: Warning message: 
1 failed to parse. 

는 이해 할 수없는 이유 replacement has 25 rows 데이터 (actualy 24 행을 가지고있는 동안 2 년), 어떤 날짜가 너무 달라서 1 failed to parse.일까요?

유용한 정보 내가 알고 싶다면 원래 만든 코드 (month.abb)를 month에서 직접 작성해야했습니다. 1 개월 열이 "jan", "feb"등으로 된 두 개의 열과 " 2016 "과"2017 ".

+2

을 구문 분석 실패"% Ymd() 안에 Y- % m- % d "'? – Sotos

+0

남자 .. 필요하다고 생각 했어. 고마워. 그래서 f 형식을 사용할 수 있습니까? – Tdebeus

+0

예. 'format (ymd(), format = '% b % Y')'예를 들어 잘 작동해야합니다. – Sotos

답변

2

당신은 길이 (24)의 벡터를 가지고 있지만 25 일 날짜로 "%Y-%m-%d"를 추가하고 있습니다. ymd()는 왜 형식을`언급해야합니까 "%Y-%m-%d"

> lubridate::ymd("2017-1-1") 
[1] "2017-01-01" 
> lubridate::ymd("2017-1-1", "%Y-%m-%d") 
[1] "2017-01-01" NA   
Warning message: 
1 failed to parse.