我有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, :
我发现了一个黑客方法来绕过错误信息。我所做的是将 Date
在MS 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