R - вычитание часов из даты - PullRequest
0 голосов
/ 22 января 2019

Я использую пакет Openair R. Первый шаг - импорт CSV.Все работает нормально, за исключением того, что мне нужно сместить время / дату в этом CSV на 6 часов назад.Другими словами, например, измените полночь одного дня на 6 часов вечера предыдущего дня и т. Д. Это так, что среднесуточные значения рассчитываются 6 утра-6 утра вместо 0-0.

Пока у меня есть:

library(openair)
library(tidyverse)

x <- import(file = "data.csv", file.type = "csv", sep = ";", header.at = 1, data.at = 2, date = "date", date.format = "%d.%m.%Y", time = "hour", time.format = "%H",quote = "\"")

В CSV есть столбец "date", в котором дата хранится как dmY, а поле field - числовое значение часа.

Позже я выбираю определенный год, но это нужно сделать уже после вычитания

dataSet <- selectByDate(x, year = 2018)

1 Ответ

0 голосов
/ 22 января 2019
library(lubridate)

df <- data.frame(datetime = ymd_hms(c("2018-01-01 05:00:00","2018-01-01 06:00:00", 
"2018-01-01 07:00:00", "2018-01-01 08:00:00")))

print(df)
#datetime
# 2018-01-01 05:00:00
# 2018-01-01 06:00:00
# 2018-01-01 07:00:00
# 2018-01-01 08:00:00


df$datetime_adjusted <- df$datetime - hours(6)

print(df)
#datetime   datetime_adjusted
# 2018-01-01 05:00:00 2017-12-31 23:00:00
# 2018-01-01 06:00:00 2018-01-01 00:00:00
# 2018-01-01 07:00:00 2018-01-01 01:00:00
# 2018-01-01 08:00:00 2018-01-01 02:00:00
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...