从高频测量中得出每日平均值

Derive daily mean from high frequency measures

我有 15 分钟的气温观察 Temp 数据,我想得出每日平均值。我一直在尝试使用 openair 包和 timeAverage 函数来得到这个答案,因为它允许用户在派生之前为允许的缺失数据量设置一个最小阈值每天的意思。但是,我不断收到与无法找到变量相关的相同错误消息 date.

这是我的数据框示例

> head(dat)
              Date Temp
1: 2001-01-01 0:00   NA     
2: 2001-01-01 0:15 -1.4
3: 2001-01-01 0:30 -1.1
4: 2001-01-01 0:45 -1.1
5: 2001-01-01 1:00 -0.9
6: 2001-01-01 1:15 -0.5

这是我一直在使用的代码

dailyAVG <- timeAverage(mydata = dat,
                        avg.time = "day",
                        data.thresh = 75,
                        statistic = "mean",
                        start.date = "2001-01-01 0:00")

产生此错误消息

Can't find the variable(s) date 
Error in checkPrep(mydata, vars, type = "default", remove.calm = FALSE,  : 

我发现了一种绕过错误消息的 hacky 方法。我所做的是将 MS Excel 中的 Date 列重命名为 date。然后,我也在 MS Excel 中将 date 列重新格式化为格式 yyyy-mm-dd hh:mm。进行这些更正后,我将 .csv 文件读入 R 并进行了以下调整。

第一次更正,把date格式改成openair喜欢的格式

dat$date <- as.POSIXct(dat$date, tz = "", "%Y-%m-%d %H:%M")

修复 date 格式后,我 运行 进入另一个与我的温度 Temp 测量相关的问题。出于某种原因,R 将值视为 class 字符,而它们应该是数字。这是用

修复的
dat$Temp <- as.numeric(dat$Temp)

进行这些更正后,函数 timeAverage 使用以下代码运行

dailyAVG <- timeAverage(mydata = dat,
                        avg.time = "day",
                        data.thresh = 75)
> dailyAVG
# A tibble: 2 x 2
  date                 Temp
  <dttm>              <dbl>
1 2001-01-01 00:00:00  3.01
2 2001-01-02 00:00:00  1.85