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))
3 Réponses :
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 créé sur 2020-02-26 par le Paquet Reprex (v0.3.0) sup> p> p> Mapply code>:
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
Vous pouvez d'abord convertir les données en format code> POSIXCT CODE>, puis utilisez le format code> pour obtenir des données dans le format requis.