Время форматирования без десятичных знаков - PullRequest
0 голосов
/ 30 января 2020

В настоящее время у меня есть большой набор данных с переменной величиной, отформатированной так: «15: 36: 44.874541 + 0000», для одного примера.

Я хочу удалить десятичные дроби и просто иметь значение «15:36:44» для каждой переменной в наборе.

Ответы [ 4 ]

2 голосов
/ 30 января 2020

Вы можете преобразовать его в тип POSIXct и затем извлечь только время с помощью format.

x <- '15:36:44.874541+0000'
format(as.POSIXct(x, format = "%T"), "%T")
#[1] "15:36:44"
0 голосов
/ 30 января 2020

Мы можем использовать strptime с strftime

strftime(strptime(x, "%T"), "%T")
#[1] "15:36:44"

data

x <- '15:36:44.874541+0000'
0 голосов
/ 30 января 2020

Вам просто нужно вырезать это время и отформатировать его.

current_time <- "15: 36: 44.874541 + 0000" </p>

formated_time <- формат (strptime (time, format = "% H:% M:% S"), "% H:% M:% S") </p>

formated_time

[1] "15:36:44 «

0 голосов
/ 30 января 2020

Я не думаю, что это идеальный и самый элегантный способ сделать это, но вы можете разделить на "." и сохранить первый пункт.

Вы можете написать:

c <- "15:36:44.874541+0000"
df <- data.frame(Time = rep(c,5))

library(rebus)
library(dplyr)
df %>% mutate(Time2 = unlist(strsplit(as.character(Time),"\\."))[1])

                  Time    Time2
1 15:36:44.874541+0000 15:36:44
2 15:36:44.874541+0000 15:36:44
3 15:36:44.874541+0000 15:36:44
4 15:36:44.874541+0000 15:36:44
5 15:36:44.874541+0000 15:36:44
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...