Изменение R script с интервала времени от 8 до 6 до 24 часов (все)

#r #timestamp

#r #временная метка

Вопрос:

Я должен использовать код для некоторой работы, которую я делаю, который работает идеально. Однако, чтобы ускорить это, ранее мы выбрали только необходимый диапазон времени для каждого файла bin, и в этом случае мне нужен полный день. Мои знания с POSIXct ограничены, я надеялся, что это будет так же просто, как выбор из часа 0-24, так что явно не в моей компетенции.

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

# считывание данных за этот день с 8 утра до 6 вечера

Starttime = as.numeric(as.POSIXct(Day, format="%d/%m/%Y")) 8*60*60

Endtime = Starttime 10*60*60

Ответ №1:

Я не уверен, что понимаю вопрос, что-то вроде этого?

 Day <- format(Sys.Date(), "%d/%m/%Y")    # test date
Day <- as.POSIXct(Day, format = "%d/%m/%Y")

Starttime <- Day   lubridate::hours(8)
Starttime
#[1] "2020-09-13 08:00:00 WEST"

Day   lubridate::days(1) - lubridate::seconds(1)
#[1] "2020-09-13 23:59:59 WEST"
  

Если функции из пакета lubridate будут использоваться чаще, загрузите пакет. Он имеет эквивалентные функции для многих других периодов, от picoseconds до years .

Примеры в вопросе о 8 и 10 часах могут быть такими, как показано ниже.
При необходимости результаты могут быть принудительно преобразованы в класс "numeric" .

 library(lubridate)

as.numeric(Starttime)
#[1] 1599980400
as.numeric(Day   hours(8))  # the same as above
#[1] 1599980400

Endtime <- Starttime   hours(10)
Endtime
#[1] "2020-09-13 18:00:00 WEST"

as.numeric(Day   days(1) - seconds(1))
#[1] 1600037999
  

Комментарии:

1. Спасибо за быстрый ответ, я не очень хорошо сформулировал себя. В настоящее время у меня есть приведенный выше код, поскольку мы просматриваем файлы bin только в промежутке времени от 8 до 6 вечера, однако я не хочу ограничиваться этим временем и хочу изменить эти строки, чтобы включить все… таким образом, я получаю все 24 часа данных за все 26 дней

2. @DestinyLBradley Затем вы можете подмножество данных с логическими условиями, скажем, i <- date >= Starttime amp; date < Endtime , где date столбец даты файла данных. Без примерного набора данных трудно сказать.

3. Я бы отправил примеры, но на самом деле я не могу в открытой форме: (хотя спасибо за вашу помощь