Я пытаюсь проанализировать серию больших CSV-файлов, данные которых отбираются каждые 3 с или около того с помощью R. Один из столбцов - это отметка времени, записанная в ходе эксперимента, а имя файла содержит дату, когда был проведен конкретный эксперимент.
Я пытаюсь прикрепить информацию о дате к отметке времени. Естественно, для этого потребуется просто объединить информацию о дате и времени, а затем преобразовать ее в объект ymd_hms в библиотеке lubridate в R.
Проблема здесь: иногда эксперимент проводится после полуночи, и файл данных не разделяется им. Вот что я имею в виду:
>practice[50:55, ]
time.sub hms hours
50 23:59:53 23H 59M 53S 23
51 23:59:55 23H 59M 55S 23
52 23:59:57 23H 59M 57S 23
53 23:59:59 23H 59M 59S 23
54 0:0:1 1S 0
55 0:0:3 3S 0
practice$hms
является результатом hms(practice$time.sub)
, а practice$hours
является результатом hours(practice$hms)
.
Предположим, эти данные получены на 181010
. Я хочу иметь возможность автоматически назначать 181011
для отметки времени, которая выходит за пределы 23:59:59
.
Вывод, который я хочу получить, будет выглядеть так:
>after_some_smart_thing()
time.sub hms hours date
50 23:59:53 23H 59M 53S 23 181010
51 23:59:55 23H 59M 55S 23 181010
52 23:59:57 23H 59M 57S 23 181010
53 23:59:59 23H 59M 59S 23 181010
54 0:0:1 1S 0 181011
55 0:0:3 3S 0 181011
Лучшая идея, которую я могу придумать на данный момент, - запустить цикл for, чтобы сравнить каждый элемент hours
с элементом над ним, и добавить 1 к дате, если число часов уменьшилось ....
Псевдокод этого будет:
addnumber <- 0
for (i in column length){
if (hours(i) > hours(i+1)){
addnumber <- addnumber + 1
}
date <- date + addnumber
Должен быть лучший способ справиться с этим, и я ищу несколько советов в сжатой кодировке, чтобы сэкономить вычислительные затраты. Благодарю.