Convierta una columna de caracteres a la fecha con múltiples formatos

Aquí están mis datos iniciales de ejemplo de Excel (la próxima vez, voy a enseñarle a mi cliente acerca de los datos ordenados):

date_string  
3/13, 3/17, 3/20  
4/13  
5/12, 5/20  

Me acerco bastante a lo que quiero con esto:

 library(tidyverse)  
 library(stringr)  
    data <- str_split_fixed(data$date_string, ",", 3)%>%  
    as_tibble() %>%  
    gather() %>%
    filter(value != "")  

entonces me quedo con esto:

key    value
v1    3/13  
v1    43203  
v1    5/12  
v2    3/17
v2    5/20
v3    3/20

Esto es lo suficientemente bueno como para poder hacer el resto del formateo y la organización en Excel, pero cuanto más pueda hacer en R, mejor, especialmente porque tendré que volver a hacerlo todo la próxima vez que actualice el producto final. Siento que hay unalubridate función para ayudarme con esto peromdy ydate sigue devolviendo errores.

El valor que quiero es la tabla de arriba pero en formato m / d / a.

Actualiza

Basado en la respuesta a continuación, agregué lo siguiente. Esto funciona, pero probablemente haya una forma más elegante de hacerlo:

   data <- str_split_fixed(data$date_string, ",", 3)%>%  
    as_tibble() %>%  
    gather() %>%
    filter(value != "") %>%  
    mutate(value =  
     if_else(
      str_detect(value, "/") == T,
      paste0(value, "/2018"),
      as.character(as_date(as.numeric(value), origin = "1900-01-01")))) %>%        
    mutate(value =
     if_else(
      str_detect(value, "/") == T,
      mdy(value),
      ymd(value)))

Recibo estas advertencias, pero los datos son como los quiero:

1. In as_date(as.numeric(value), origin = "1900-01-01") :  
 NAs introduced by coercion
2. 1 failed to parse.
3. 5 failed to parse.

No estoy seguro de cómo "no se pudo analizar" cuando la columna final de "valor" se devuelve como una variable de fecha. . .

Respuestas a la pregunta(2)

Su respuesta a la pregunta