Calcule la cadena de caracteres "días, horas, minutos, segundos" en días numéricos totales [duplicado]

Esta pregunta ya tiene una respuesta aquí:

R extraer componentes de tiempo de cadenas semi-estándar 2 respuestas

He visto muchas preguntas relacionadas con los tiempos de formato, pero ninguna en el formato importado particular que tengo:

Time <- c(
"22 hours 3 minutes 22 seconds", 
"170 hours 15 minutes 20 seconds", 
"39 seconds", 
"2 days 6 hours 44 minutes 17 seconds", 
"9 hours 54 minutes 36 seconds", 
"357 hours 23 minutes 28 seconds", 
"464 hours 30 minutes 7 seconds", 
"51 seconds", 
"31 hours 39 minutes 2 seconds", 
"355 hours 29 minutes 10 seconds")

Algunas veces contienen solo "segundos" y otros "minutos y segundos", "días, horas, minutos y segundos", "días y segundos", etc. También hay valores de NA que debo mantener. ¿Cómo puedo obtener este vector de caracteres para calcular (es decir, agregar días, horas, minutos, segundos) días numéricos totales?

Por ejemplo

Time
8.10
19.3
0.68
2.28
48.1
0.00
0.70
0.1
3.2
13.9

¡Gracias

EDITA

Pregunta anterior, pero una @ simplubridate call hace el truco ahora:

(period_to_seconds(period(time)) / 86400) %>% round(2)

Esto también funciona sin otros paquetes que no sean%>% para facilitar la lectura:

Time_vec <- mapply(function(tt, to_days) {
  ifelse(grepl(tt, Time), gsub(paste0("^.*?(\\d+) ", tt, ".*$"), "\\1", Time), 0) %>%
    as.numeric() / to_days
    },
  c("day", "hour", "minute", "second"),
  c(1, 24, 1440, 86400)
) %>%
  apply(1, sum) %>% 
  round(2)

En mis datos reales, solo un valor era diferente allubridate solución,0.96 vs0.97.

Respuestas a la pregunta(4)

Su respuesta a la pregunta