我正在使用R的Openair软件包。第一步是导入CSV。一切正常,除了我需要将CSV中的时间/日期后退6个小时。换句话说,例如将一天的午夜更改为前一天的下午6点等。这样可以计算每日平均值,而不是0-0,是6 AM-6AM。
到目前为止,我有:
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的“日期”列存储的日期为d.m.Y,字段小时为小时的数字值。
后来我选择了一个特定的年份,但这需要在减法之后就已经完成
dataSet <- selectByDate(x, year = 2018)
答案 0 :(得分:2)
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