2017-09-17 13 views
-1

this data을 사용하고 있습니다. 변수 as.Date()을 정의하려면 NA이 표시됩니다.as.Date conversion returns NA

이것은 내가 사용하고있는 코드입니다. 누군가 내가 뭘 잘못하고 있는지 조언 해 줄 수 있습니까? 코멘트에 좋은 제안 외에도

dataf <- read.csv("DB.csv") 
dataf$Date <- as.Date(dataf$Date, format = "%b-%Y") 
str(dataf) 
'data.frame': 55 obs. of 9 variables: 
$ Date  : Date, format: NA NA ... 
$ Sydney : num 85.3 88.2 87 84.4 84.2 84.8 83.2 82.6 81.4 81.8 ... 
$ Melbourne: num 60.7 62.1 60.8 60.9 60.9 62.4 62.5 63.2 63.1 64 ... 
$ Brisbane : num 64.2 69.4 70.7 71.7 71.2 72 72.6 73.3 73.6 75 ... 
$ Adelaide : num 62.2 63.9 64.8 65.9 67.1 68.6 68.6 69.3 70 71.6 ... 
$ Perth : num 48.3 50.6 52.5 53.7 54.7 57.1 59.4 62.6 65.2 70 ... 
$ Hobart : num 61.2 66.5 68.7 71.8 72.3 74.6 75.8 76.9 76.7 79.1 ... 
$ Darwin : num 40.5 43.3 45.5 45.2 46.8 49.7 53.6 54.7 56.1 60.2 ... 
$ Canberra : num 68.3 70.9 69.9 70.1 68.6 69.7 70.3 69.9 70.1 71.7 ... 
+0

당신은 아마 입력으로 소위'factor' 변수가 처리 할 수 ​​lubridate::parse_date_time"을 시도해야합니다. 'anytime :: anydate()'함수는 그뿐만 아니라 많은 수의 가능한 날짜 형식을 자동으로 처리합니다. 도움이 될 수도 있습니다. –

+1

사용중인 세트를 추측하고 데이터를 다운로드해야하는 여러 데이터 세트로 연결되는 링크 대신 사용중인 데이터 스 니펫을 제공하십시오. – brittenb

+1

또한 형식에 달과 연도 만 있고 'as.Date'에는 하루가 필요합니다. 'paste ("01", dataf $ Date, sep = "-")'를 사용하고 적절한 형식으로'as.Date'를 호출하십시오. –

답변

2

, 당신은 불완전 날짜

as.Date("01-2017", format="%m-%Y") 
# [1] NA 
as.POSIXct("01-2017", format="%m-%Y") 
# [1] NA 
as.POSIXlt("01-2017", format="%m-%Y") 
# [1] NA 

library(lubridate) 
parse_date_time("01-2017", "my") 
# [1] "2017-01-01 UTC"