這個答案的靈感來自於使用Python中的dict
到replicate switch behavior。而不是有一個本地交換機,創建一個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
謝謝,約翰。我不知道這個功能。 – DrewConway 2010-07-26 11:27:12