0
votes

Convertir du temps militaire en uc dans r

J'ai un jeu de données, DF1, je voudrais convertir toutes les valeurs de l'horloge de 24 heures en UTC.

 structure(list(Date = structure(1:2, .Label = c("1/2/2020 16:46", 
 "1/2/2020 16:51"), class = "factor"), Name = structure(1:2, .Label = c("A", 
"B"), class = "factor")), class = "data.frame", row.names = c(NA, 
-2L))


0 commentaires

3 Réponses :


1
votes

en supposant que vous souhaitez convertir réellement une chaîne en un format en une chaîne d'un autre format plutôt que de la compenser en tant que date / heure réelle (plus utile), vous pouvez utiliser un peu d'arithmétique et de découpage de chaîne avec Mapply : xxx

créé sur 2020-02-26 par le Paquet Reprex (v0.3.0)


0 commentaires

1
votes

Assumer les mêmes hypothèses que la réponse précédente de Allan, voici une autre façon de convertir de 24 heures à 12 heures.

library(tidyverse)
library(lubridate)

df <- tibble(
      date = c(ymd_hms("2020/01/02 16:46:00", "2020/01/02 16:51:00", tz = "UTC")),
      name = c("A", "B")
      )

df %>% 
    mutate(date_hour = hour(date),
       am_pm = if_else(date_hour > 12, "PM", "AM"),
       date_hour = if_else(date_hour > 12, date_hour - 12, date_hour - 0),
       newdatetime = paste0(date(date), " ", date_hour , ":", minute(date), " ", am_pm)) %>% 
    select(-c(date_hour, am_pm))

df
 # A tibble: 2 x 3
  date                name  newdatetime       
 <dttm>              <chr> <chr>             
 1 2020-01-02 16:46:00 A     2020-01-02 4:46 PM
 2 2020-01-02 16:51:00 B     2020-01-02 4:51 PM


0 commentaires

2
votes

Vous pouvez d'abord convertir les données en format POSIXCT , puis utilisez le format pour obtenir des données dans le format requis. xxx


0 commentaires