Этот ответ основан на использовании dict
в Python для поведения переключения репликации . Вместо того, чтобы иметь собственный переключатель, создайте list
, который проиндексирован по названиям месяцев со значениями для числового эквивалента:
months<-list("January"="01","February"="02","March"="03","April"="04","May"="05","June"="06","July"="07","August"="08","September"="09","October"="10","November"="11","December"="12")
С этим списком просто использовать sapply
для создания преобразования:
new.dates<-sapply(as.character(old.data$dateoccurred),function(x) paste(strsplit(x," ")[[1]][3],month.convert(strsplit(x," ")[[1]][1]),sub(",","",strsplit(x," ")[[1]][2]),sep="-"))
Теперь у нас есть данные, отформатированные так, как я хотел.
head(new.data$dateoccurred)
[1] 2004-04-09 2004-09-01 2005-02-07 2005-02-19 2005-02-22 2005-03-11
264 Levels: 2004-04-09 2004-09-01 2005-02-07 2005-02-19 2005-02-22 2005-03-11 2005-03-15 2005-03-19 2005-05-13 2005-06-28 2005-06-29 2005-07-05 ... 2009-12-22