Преобразование даты и времени в прошедшее время в десятичных часах - PullRequest
0 голосов
/ 17 июня 2020

Мне нужна ваша помощь, чтобы преобразовать столбец data.frame, содержащий дату и время, в прошедшее время в десятичных часах и сохранить его в другом столбце того же data.frame. Например, у меня есть следующий data.frame, где каждая ячейка представляет собой приращение на 1 минуту по сравнению с предыдущим, и я хотел бы получить результат, показанный в соседнем столбце: Большое спасибо

       df$datetime           df$elapsed (hours) that I want
1993-12-09 14:51:00            0.00             
1993-12-09 14:52:00            0.02             
1993-12-09 14:53:00            0.03             
1993-12-09 14:54:00            0.05             
1993-12-09 14:55:00            0.07             
1993-12-09 14:56:00            0.08             
1993-12-09 14:57:00            0.10             
1993-12-09 14:58:00            0.12             
1993-12-09 14:59:00            0.13             
1993-12-09 15:00:00            0.15             
1993-12-09 15:01:00            0.17             
1993-12-09 15:02:00            0.18             
1993-12-09 15:03:00            0.20             
....     ....                  ....     
1993-12-09 15:24:00            0.55             
1993-12-09 15:25:00            0.57             
1993-12-09 15:26:00            0.58             
1993-12-09 15:27:00            0.60             
1993-12-09 15:28:00            0.62             
1993-12-09 15:29:00            0.63 
...            ....            ....                         
1993-12-09 15:51:01            1.00                             
1993-12-09 15:52:01            1.02             
1993-12-09 15:53:01            1.03             
1993-12-09 15:54:01            1.05             
1993-12-09 15:55:01            1.07             
1993-12-09 15:56:01            1.08 
...      ....                 ...

1 Ответ

0 голосов
/ 17 июня 2020

Чтобы вычислить разницу между двумя датами, вы можете вычесть начало из конца. Это дает вам разницу во времени, которую вы можете преобразовать в число, используя as.numeric и установив units на «часы». Я думаю, что ваше начало - это дата и время в первой строке, поэтому, используя tidyverse, вы можете сделать что-то вроде этого ...

library(tidyverse)
df %>%
  mutate(elapsed = as.numeric(datetime - first(datetime), units = "hours"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...