0
votes

Comment diviser une colonne de date et de temps en journée séparée, heure, heure, minute, deuxième, jour de la semaine de la semaine dans R?

J'essaie de diviser une colonne de date et de temps en jour, mois, heure distincte, heure, minute, deuxième, jour des colonnes de la semaine. J'utilise la fonction lubridate et mutuate mais lorsque j'essaie d'utiliser le code ci-dessous, je reçois cette erreur: Message d'avertissement: Tous les formats ont échoué à analyser. Aucun format trouvé.

Mes nouvelles colonnes sont créées mais elles contiennent tous NA - se demandant si quelqu'un peut aider? P>

Ma colonne ressemble à ceci: p>

taxidata3 <- taxidata2 %>%
  mutate(tpep_pickup_datetime = mdy_hms(tpep_pickup_datetime), 
         day = day(tpep_pickup_datetime),
         month = month(tpep_pickup_datetime), 
         year = year(tpep_pickup_datetime),
         dayofweek = wday(tpep_pickup_datetime),
         hour = hour(tpep_pickup_datetime),
         minute = minute(tpep_pickup_datetime),
         second = second(tpep_pickup_datetime))


3 commentaires

Quelle est la sortie de mdy_hms est-ce mois / jour / ou jour / mois / mois


Salut akrun - c'est jour / mois


Ensuite, votre code devrait être dmy_hms


3 Réponses :


2
votes

Basé sur les commentaires de l'OP, le format de date est le jour / mois / ... au lieu de mois / jour / ... ici, nous avons besoin dmy_hms . Donc, chaque lettre signifie l'ordre d'occurrence xxx


0 commentaires

2
votes

Ceci est une solution stringr à l'aide de REGEX pour correspondre aux composants de la date:

Données: xxx

solution: < Pré> xxx

résultat: xxx


0 commentaires

1
votes

Voici une autre alternative utilisant la fonction distincte code>. Le code et la sortie sont les suivants: -

library(tidyverse)
df <- data.frame(
    tpep_pickup_datetime = c("01/07/2019 00:51:15", "01/07/2019 00:46:30", 
                             "01/07/2019 00:25:35"))

df %>% 
    separate(tpep_pickup_datetime, c("Day", "Month", "Year_time"),
             sep = "/", remove = FALSE) %>% 
    separate(Year_time, c("Year", "Time"),
             sep = " ", remove = TRUE) %>% 
    separate(Time, c("Hour", "Minute", "Second"),
             sep = ":", remove = TRUE) 

# tpep_pickup_datetime Day Month Year Hour Minute Second
#1  01/07/2019 00:51:15  01    07 2019   00     51     15
#2  01/07/2019 00:46:30  01    07 2019   00     46     30
#3  01/07/2019 00:25:35  01    07 2019   00     25     35


0 commentaires