2016-10-31 10 views
0

я есть данные в следующем виде (2): примерыНайти 3 последовательных высокие значения в круговой ряд по R

p1 <- structure(c(1.38172177074188, 1.18601365390563, 1.25131938561825, 
1.07175353794277, 0.887770295772917, 0.806599968169486, 0.843543355495394, 
0.889051695167723, 0.764131945540256, 0.699309441111923, 0.945165791967098, 
1.31310409471336), .Dim = 12L) 

p2 <- structure(c(1.24801075135611, 1.06280347993594, 1.21410288703334, 
1.36797720634294, 1.07291218307332, 0.936924063490867, 0.819723966406961, 
0.854960740335283, 0.718565087630857, 0.649827141012991, 0.785853771875901, 
1.04368795443605), .Dim = 12L) 

Эти стандартизированные месячные средства гидрологических временных рядов; так называемые режимы Парде, которые дают некоторое представление о годовой сезонности. Чтобы провести дальнейший анализ, мне нужно вывести 3 самых высоких и самых низких месяца из этих серий Pardé. Поскольку сезонность может быть бимодальной, мне нужно идентифицировать 3 самых высоких/самых низких последовательных точек данных (которые чаще всего не являются тремя абсолютными наивысшими/наименьшими точками данных, см. Примеры), чтобы определить сроки наиболее влажных и сухих периодов. До сих пор я терпел неудачу из-за кругового характера временного ряда, что создает особую проблему. Любые предложения?

+1

вы проверили эти [R пакеты для гидрология] (https://abouthydrology.blogspot.co.ke/2012/08/r-resources-for-hydrologists.html) уже? – Henk

+0

отличные советы, я определенно проверю некоторые из них. Кроме того, решение Roland отлично подходит для этой конкретной проблемы. – Ben

ответ

4

Вы можете использовать filter. Он суммирует последовательные значения и может иметь дело с круговыми временными рядами.

f1 <- stats::filter(p1, c(1, 1, 1), circular = TRUE, sides = 1) 
#Time Series: 
# Start = 1 
#End = 12 
#Frequency = 1 
#[1] 3.639992 3.880840 3.819055 3.509087 3.210843 2.766124 2.537914 2.539195 2.496727 2.352493 2.408607 2.957579 
((which.max(f1) - (3:1)) %% 12) + 1 
#[1] 12 1 2 
+0

блестящее решение, которое отлично работает. Спасибо, кучи! – Ben