Редактировать последние цифры в каждом другом значении - PullRequest
1 голос
/ 07 июля 2019

У меня есть список времени и дат, взятых каждые 2,5 минуты в течение 6 месяцев. Однако в моих значениях отсутствует элемент секунд, который мне нужен. Я хотел бы добавить правильные секунды к значениям, которые их пропускают, поэтому в этом примере 00:02:00, 00:07:00, 00:12:00, которое должно быть 00:02:30, 00:07 : 30, 00:12:30. Если возможно, я хотел бы сделать это в df1$datetime и df1$time.

        datetime     time       date
2018-03-18 00:00:00 00:00:00 18/03/2018
2018-03-18 00:02:00 00:02:00 18/03/2018
2018-03-18 00:05:00 00:05:00 18/03/2018
2018-03-18 00:07:00 00:07:00 18/03/2018
2018-03-18 00:10:00 00:10:00 18/03/2018
2018-03-18 00:12:00 00:12:00 18/03/2018

Я конвертировал df1$datetime в POSIXct.

Я вообще не уверен, как это сделать в R. В идеале я хотел бы быть в состоянии сделать это для всего моего набора данных, который работает до 26/6/18.

Любой совет очень ценится.

1 Ответ

1 голос
/ 07 июля 2019

Мы можем добавить seconds

library(lubridate)
df1$datetime[c(FALSE, TRUE)] <- df1$datetime[c(FALSE, TRUE)] + seconds(30)
df1$time[c(FALSE, TRUE)] <-  format(df1$datetime[c(FALSE, TRUE)], "%H:%M:%S")
df1
#            datetime     time       date
#1 2018-03-18 00:00:00 00:00:00 18/03/2018
#2 2018-03-18 00:02:30 00:02:30 18/03/2018
#3 2018-03-18 00:05:00 00:05:00 18/03/2018
#4 2018-03-18 00:07:30 00:07:30 18/03/2018
#5 2018-03-18 00:10:00 00:10:00 18/03/2018
#6 2018-03-18 00:12:30 00:12:30 18/03/2018

данные

df1 <- structure(list(datetime = structure(c(1521345600, 1521345720, 
1521345900, 1521346020, 1521346200, 1521346320), class = c("POSIXct", 
"POSIXt"), tzone = ""), time = c("00:00:00", "00:02:00", "00:05:00", 
"00:07:00", "00:10:00", "00:12:00"), date = c("18/03/2018", "18/03/2018", 
"18/03/2018", "18/03/2018", "18/03/2018", "18/03/2018")), row.names = c(NA, 
-6L), class = "data.frame")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...