从高频测量中得出每日平均值
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
我有 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