簡體   English   中英

如何在多個級別上執行曼恩·肯德爾趨勢測試

[英]How to perform mann kendall trend test on multiple levels

我正在處理氣象站的降水量數據。 每個站都有60年的降水數據,有30個站。 我想在每個站上進行Mann Kendall趨勢測試,以查看是否有明顯的降水趨勢。

我試過group_bysummarise來計算曼肯德爾每個站了60年的歷程。

這是一個小示例,其中ID是氣象站,而prcp是降水。

ID<-c(1,1,1,1,1,2,2,2,2,2)
prcp<-c(2,0,1,4,5,0,2,3,5,6)
df<-cbind(ID,prcp)

mk<-df %>%
  as.data.frame() %>% 
  group_by(ID) %>%
  summarise(prcpmk=MannKendall(prcp))

每次執行此操作時,都會出現以下錯誤: Column prcpmk must be length 1 (a summary value), not 5

問題的一部分是MannKendall函數返回5個值。 嘗試使用group_by時如何僅指定p值?

我想要的是僅具有p值的df:

  ID prcpmk
[1,]  1   0.20
[2,]  2   0.03

謝謝@ A.Suliman,您是對的。

這似乎可行:

ID<-c(1,1,1,1,1,2,2,2,2,2)
prcp<-c(2,0,1,4,5,0,2,3,5,6)
df<-cbind(ID,prcp)

mk<-df %>%
  as.data.frame() %>% 
  group_by(ID) %>%
  summarise(prcpmk=MannKendall(prcp)$sl)

在MannKendall()之后添加$sl指定p值。 或者,您可以指定tau,Kendall分數(S),S方差的分母(D)(varS)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM