0

我对气温Temp数据进行了 15 分钟的观察,我想从中得出每日平均值。我一直在尝试使用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,  : 
4

1 回答 1

0

我找到了一种绕过错误消息的hacky方法。我所做的是将DateMS Excel 中的列重命名为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 将值视为类字符。这是固定的

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
于 2020-04-24T14:37:07.967 回答