Преобразование символьной даты в дату в R - PullRequest
0 голосов
/ 08 мая 2020

это мой обзор набора данных. Я хотел бы преобразовать месяц (format = character) в formate: date в R

Я пробовал as.Date () as.Date(df$month, "%Y-%m"), но не удалось преобразовать. Я использовал anytime () и as.POSIXct ()

Причина, по которой я хочу преобразовать дату, заключается в том, что мне нужно left_join с другим набором данных с помощью переменной rime.

   crime_type    month       n   rate
   <chr>         <chr>   <int>  <dbl>
 1 Bicycle theft 2017-04    33 NA    
 2 Bicycle theft 2017-05    32  1.03 
 3 Bicycle theft 2017-06    36  0.889
 4 Bicycle theft 2017-07    39  0.923
 5 Bicycle theft 2017-08    52  0.75 
 6 Bicycle theft 2017-09    36  1.44 

другой набор данных здесь

 ym      unemploy_rate
   <chr>           <dbl>
 1 2017-1            4.6
 2 2017-2            4.6
 3 2017-3            4.5
 4 2017-4            4.4
 5 2017-5            4.4
 6 2017-6            4.3
 7 2017-7            4.3

1 Ответ

0 голосов
/ 08 мая 2020

Мы можем paste с днем ​​и использовать as.Date

df$month <- as.Date(paste0(df$month, "-01"), "%Y-%m-%d")

Или другой вариант - преобразовать в класс yearmon, а затем использовать as.Date

library(zoo)
df$month <- as.Date(as.yearmon(df$month))

Обновление

Если цель состоит в том, чтобы left_join с другим набором данных, где столбец 'ym' не имеет 0 после -, мы можем вставить это вместо изменения формата по первым данным

df2$ym <- sub("-(\\d)$", "-0\\1", df2$ym)
...