簡體   English   中英

比較 tibble 中不同長度的組

[英]Comparing groups with different lengths in a tibble

我正在研究干旱對植物的影響,為此我需要比較干旱之前、期間和之后的數據。 然而,事實證明很難從我的數據中選擇這些時間段,因為天數的長度各不相同。 由於我有幾年的時間序列,每日分辨率,我想避免手動選擇時間段。 我已經為此苦苦掙扎了很長一段時間,對於任何提示和建議,我都會非常感激。

這是我的數據的簡化示例:

myData <- tibble(
  day = c(1:16),
  TWD = c(0,0,0,0.444,0.234,0.653,0,0,0.789,0.734,0.543,0.843,0,0,0,0),
  Amp = c(0.6644333,0.4990167,0.3846500,0.5285000,0.4525833,0.4143667,0.3193333,0.5690167,0.2614667,0.2646333,0.7775167,3.5411667,0.4515333,2.3781333,2.4140667,2.6979333)
)

在我的數據中,TWD > 0 意味着有干旱,所以我確定了這些時期。

myData %>%
  mutate(status = case_when(TWD > 0 ~ "drought", 
                           TWD == 0 ~ "normal")) %>%
{. ->> myData} 

我用下面的代碼來得到個別正常和干旱期的長度

myData$group <- with(myData, rep(seq_along(z<-rle(myData$status)$lengths),z))
with(myData, table(group, status))     

     status
group drought normal
    1       0      3
    2       3      0
    3       0      2
    4       4      0
    5       0      4

這就是我卡住的地方。 理想情況下,我希望獲得每個干旱時期的 Amp 平均值,並將它們與干旱前后的正常時期的平均值進行比較,然后移至下一個干旱時期。 我如何比較例如第 1、2 和 3 組的天數? 我在這里找到了一個有前途的解決方案選擇 R事件發生前的特定天數范圍,其中使用了map(. , function(x) dat[(x-5):(x), ]) ,但問題是我不沒有固定的天數我想比較,因為天數取決於正常和干旱期的長度。

我想創建一個嵌套的 tibble 來比較不同的組,就像這里比較組與彼此

tibble(value = myData,
    group= myData$group %>%
    nest(value))

但這會產生一個錯誤,我認為這是因為我試圖組合一個向量而不是一個小標題。

一種可能性是使用成對 Wilcoxon 檢驗來比較每個組的均值(不過,老實說,我不是 Wilcoxon 是否適合這些數據的專家):

pairwise.wilcox.test(myData$Amp, myData$group, p.adjust.method = 'none', alternative = 'greater')

列和行索引是組,在這種情況下,您知道偶數組是“干旱”時期。

您可能需要糾正多重比較(通過調查p.adjust.method參數)。

暫無
暫無

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

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