У меня есть dataframe с почасовыми наблюдаемыми и смоделированными данными о качестве воздуха. Дополнительная информация измерение станции, страны, stationtype и модель:R: агрегат в сочетании с timeAverage
> head(PM10val)
date station type model country obs mod
1 2009-01-01 00:00:00 BELAB01 sB chimere BE 63 13.45
2 2009-01-01 01:00:00 BELAB01 sB chimere BE 50 18.71
3 2009-01-01 02:00:00 BELAB01 sB chimere BE 77 20.65
4 2009-01-01 03:00:00 BELAB01 sB chimere BE 68 21.42
5 2009-01-01 04:00:00 BELAB01 sB chimere BE 58 22.47
6 2009-01-01 05:00:00 BELAB01 sB chimere BE 62 24.02
Я хотел бы использовать функцию timeAverage (рассчитать временные средние в dataframe, содержащем поле даты) пакет OpenAir для расчета ежедневно или среднегодовых значений , для каждой станции и для каждой модели. Я пробовал:
> anmean <- aggregate(PM10val, by=list(PM10val$station,PM10val$model),
+ function (x) timeAverage(x,avg.time="year",data.thresh=75, statistic="mean"))
Это следует рассчитать среднегодовые средние значения для «набл» и «мода» на модель и станции, с порогом захвата данных на 75%. но он возвращает:
Error in `[.default`(mydata, , Names) : incorrect number of dimensions
11 NextMethod("[")
10 `[.POSIXct`(mydata, , Names)
9 mydata[, Names]
8 checkPrep(mydata, vars, type = "default", remove.calm = FALSE,
strip.white = FALSE)
7 timeAverage(x, avg.time = "year", data.thresh = 75, statistic = "mean")
6 FUN(X[[1L]], ...)
5 lapply(X = split(e, grp), FUN = FUN, ...)
4 FUN(X[[1L]], ...)
3 lapply(x, function(e) {
ans <- lapply(X = split(e, grp), FUN = FUN, ...)
if (simplify && length(len <- unique(sapply(ans, length))) ==
1L) { ...
2 aggregate.data.frame(PM10val, by = list(PM10val$station, PM10val$model),
function(x) timeAverage(x, avg.time = "year", data.thresh = 75,
statistic = "mean"))
1 aggregate(PM10val, by = list(PM10val$station, PM10val$model),
function(x) timeAverage(x, avg.time = "year", data.thresh = 75,
statistic = "mean"))
Что я делаю неправильно? Я всегда могу использовать цикл, но я не думаю, что это путь. Спасибо!
Что такое 'timeAverage (PM10val, avg.time =" year ", data.thresh = 75, statistic =" mean ")' return? Кроме того, после ошибки, пожалуйста, укажите результат 'traceback()'. –
Я добавил его в свой основной вопрос выше. Извините за путаницу, это первый раз, когда я задаю вопрос! –