Юлианские даты как дата
Я пытаюсь запустить простую регрессию в 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"