Юлианские даты как дата

Я пытаюсь запустить простую регрессию в R (Mac OSX), чтобы увидеть, улучшился ли уровень экологической сертификации с течением времени - среди прочего. Данные, которые я скачал, предлагают уровень от 1 до 4, а даты в формате 1-марта-12. Я не могу заставить R преобразовать даты, и я получаю одно и то же сообщение об ошибке. Переменные имеют одинаковую длину.

$ certification_date: chr  "1-Aug-11" "1-Aug-11" "1-Aug-11" "1-Jul-11" ...

jday<-as.Date('certification_date',format='%d-%b-%y',"%j")
mod <- lm(Level_number ~ jday, data=data)

Error in model.frame.default(formula = Level_number ~ jday, data = data,  : 
  variable lengths differ (found for 'jday')

summary(jday)
Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
  NA      NA      NA      NA      NA      NA     "1" 

Кто-нибудь может определить, где я ошибся?

1 ответ

Вы должны удалить цитаты вокруг certification_date как уже упоминалось в комментарии, но %b это сокращенное название месяца в текущей локали. Таким образом, вы можете получить еще одну проблему со своими местными жителями. Здесь я представляю независимое локальное решение:

## get your current local time
loc <- Sys.getlocale('LC_TIME')  
## set the local to english , since %b is local dependent 
Sys.setlocale('LC_TIME','ENGLISH')
jday <-as.Date(certification_date,format='%d-%b-%y',"%j")
Sys.setlocale('LC_TIME',loc)

Результат:

jday
[1] "2011-08-01" "2011-08-01" "2011-08-01" "2011-07-01"
Другие вопросы по тегам