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.