【发布时间】:2016-04-21 18:58:03
【问题描述】:
我是 R 新手,我必须计算时间序列的平均值,包含 5 年,每小时采集的臭氧数据等。
我的 df 看起来像:
structure(list(date = structure(c(1L, 1L, 1L, 1L), .Label = "01.01.2010", class = "factor"),
day.of = c(1L, 1L, 1L, 1L), time = structure(1:4, .Label = c("00:00",
"01:00", "02:00", "03:00"), class = "factor"), SVF_Ray = c(1L,
1L, 1L, 1L), Gmax = c(0, 0, 0, 0), Ta = c(-1.3, -1.2, -1.2,
-1.2), Tmrt = c(-19.3, -12.1, -12, -12.1), PET = c(-10.4,
-8.7, -8.7, -8.7), PT = c(-11.3, -9.3, -9.3, -9.3), Ozon = c(61.35,
62.65, 63.4, 63.85), rDatum = structure(c(14610, 14610, 14610,
14610), class = "Date"), year = c(2010, 2010, 2010, 2010),
month = c(1, 1, 1, 1), day = c(1, 1, 1, 1), hour = c(0, 1,
2, 3)), .Names = c("date", "day.of", "time", "SVF_Ray", "Gmax",
"Ta", "Tmrt", "PET", "PT", "Ozon", "rDatum", "year", "month",
"day", "hour"), row.names = c(NA, 4L), class = "data.frame")
我想每 8 小时计算一次 Ozon 的平均值,所以每天计算一系列 4 个平均值。我的数据安排如下:
Datum_Ozon$rDatum <- as.Date(data$date, format="%d.%m.%Y")
Datum_Ozon$hour<-as.numeric(unlist(strsplit(as.character(df$time), ":"))[seq(1, 2 * length(df$time), 2)])
格式是数字
但我不知道如何实现我的目标。提前致谢!
【问题讨论】:
-
使用 dput(DF_Ozone) 提供(部分)数据比数据图片更有用
-
感谢您的评论,我正在想办法。
-
如果我们不知道
time是什么类型的数据,也很难给出答案。但是,假设它是某种时间对象,您可以使用ifelse设置一些条件(即 8 小时的块)来创建一个新的分组变量。 -
很抱歉,我不知道如何上传我的 df 的一部分,我知道这会有所帮助。
-
谢谢你,希望我做对了
标签: r time time-series mean