Bạn có thể sử dụng được xây dựng trong vector month.abb
để kiểm tra chống lại khi chuyển sang một con số, ví dụ:
mm <- c("Jan","Dec","jan","Mar","Apr")
sapply(mm,function(x) grep(paste("(?i)",x,sep=""),month.abb))
Jan Dec jan Mar Apr
1 12 1 3 4
Các cấu trúc grep mất chăm sóc sự khác biệt về cách viết hoa. Nếu không cần thiết,
match(mm,month.abb)
hoạt động bình thường.
Nếu bạn cũng có một ngày và một cột năm, bạn có thể sử dụng bất kỳ chức năng chuyển đổi, sử dụng các mã thích hợp (xem thêm ?strftime
)
ví dụ
mm <- c("Jan","Dec","jan","Mar","Apr")
year <- c(1998,1998,1999,1999,1999)
day <- c(4,10,3,16,25)
dates <- paste(year,mm,day,sep="-")
strptime(dates,format="%Y-%b-%d")
[1] "1998-01-04" "1998-12-10" "1999-01-03" "1999-03-16" "1999-04-25"
Nguồn
2011-07-01 14:39:28
Tín dụng bổ sung: cung cấp câu trả lời phù hợp nếu chữ viết tắt của tháng không bằng tiếng Anh! (ví dụ "Jan", "Fev", "Mar", "Avr", "Mai", ...) [Gợi ý: bạn có thể làm điều này bằng cách tạm thời chuyển miền địa phương của hệ thống và sử dụng 'as.Date' bằng' % b' format ...] –