### The sample data
df <- data.frame(months = c('jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec'),
values = sample(100:200, 12, replace = TRUE))
### Load the library needed
library(dplyr)
我嘗試以下方法三個字母的月份(如一月)轉換爲日期:轉換三個字母本月至今類
df.1 <- mutate(df, year = 2015)
df.1 <- mutate(df.1, dates = sapply(months, function(x) grep(paste("(?i)", x, sep = ""), month.abb)))
df.1 <- mutate(df.1, dates1 = paste(dates, year, sep = "-"))
df.1 <- mutate(df.1, dates2 = as.Date(df.1$dates1, "%m-%Y"))
但dates2
列結果到NA
,但是當我檢查了結構,結果是:
> str(df.1)
'data.frame': 12 obs. of 6 variables:
$ months: Factor w/ 12 levels "apr","aug","dec",..: 5 4 8 1 9 7 6 2 12 11 ...
$ values: int 141 147 176 189 113 181 149 114 121 191 ...
$ year : num 2015 2015 2015 2015 2015 ...
$ dates : int 1 2 3 4 5 6 7 8 9 10 ...
$ dates1: chr "1-2015" "2-2015" "3-2015" "4-2015" ...
$ dates2: Date, format: NA NA NA NA ..
有沒有辦法給months
列轉換爲Date類?怎麼樣?感謝您的幫助。
@Jota你確定這是一個很好的欺騙對象,因爲它與數字月份交易(格式'「YYYY-MM」') ?實際Q是關於縮寫的月份名稱。 – Uwe
請參見[convert mmm to R in](http://stackoverflow.com/questions/6549239/convert-mmm-to-numeric-in-r)或[將月份縮寫轉換爲數字月份,R ](http://stackoverflow.com/questions/6987478/convert-a-month-abbreviation-to-a-numeric-month-in-r) – Uwe
@UweBlock公平點。我選擇了這個目標,因爲我看到在嘗試的解決方案中,「Jan」已經被轉換爲一個數字,並且問題出現的點將「1-2015」傳遞給「as.Date」。 – Jota