2016-11-29 49 views
1

我有一個變量t,l和c在數天內重複測量的數據集。我試圖計算t和l/c峯之間的差異。我已經設法找到了高峯測量的那一天,但我不知道如何將這些全部放在同一條線上,以便我可以計算日差。從分組數據中選擇不同的行

Record | day | t  | day_tmax | l | day_lmax | c  | day_cmax 
-------------------------------------------------------------------- 
1  | 1 | 40.5 | NA  | 2 | NA  | 1.6 | NA 
-------------------------------------------------------------------- 
1  | 2 | 136.8 | 2  | 2.5 | 2  | 190.6 | NA 
-------------------------------------------------------------------- 
1  | 3 | 102.7 | NA  | 1.6 | NA  | 375.8 | NA 
-------------------------------------------------------------------- 
1  | 4 | 55.1 | NA  | 1.6 | NA  | 515.5 | 4 
-------------------------------------------------------------------- 
1  | 5 | 32.3 | NA  | 1.7 | NA  | 411.2 | NA 
-------------------------------------------------------------------- 
1  | 6 | 27.4 | NA  | 1.5 | NA  | 235.7 | NA 
-------------------------------------------------------------------- 
1  | 7 | 17.7 | NA  | 1.1 | NA  | 187.1 | NA 
-------------------------------------------------------------------- 
1  | 8 | 23  | NA  | 1.4 | NA  | 257 | NA 
-------------------------------------------------------------------- 
1  | 9 | 17.2 | NA  | 1.4 | NA  | 170.5 | NA 
-------------------------------------------------------------------- 
1  | 10 | 12.1 | NA  | 0.6 | NA  | 162.1 | NA 
-------------------------------------------------------------------- 
2  | 1 | 72.2 | NA  | 0.9 | 1  | 2.4 | NA 
-------------------------------------------------------------------- 
2  | 2 | 54.3 | NA  | 0.8 | na  | 3.9 | NA 
-------------------------------------------------------------------- 
2  | 3 | 64.4 | NA  | 0.7 | NA  | 4.6 | 3 
-------------------------------------------------------------------- 
2  | 4 | 63.1 | NA  | 0.5 | NA  | 3.1 | NA 
-------------------------------------------------------------------- 
2  | 5 | 65.2 | NA  | 0.3 | NA  | 4.5 | NA 
-------------------------------------------------------------------- 
2  | 6 | 66.5 | NA  | 0.2 | NA  | 4.6 | 6 
-------------------------------------------------------------------- 
2  | 7 | 81.5 | 7  | 0.2 | NA  | 3.5 | NA 
-------------------------------------------------------------------- 

我知道dplyr:

df1 <- df %>% group_by(record) %>% mutate(day_tmax = nth(day_tmax,2)) 

但是,有沒有辦法做到這一點時,原始變量的位置而發生變化?

+0

你可以格式化你的數據,使其對齊!只需添加4個空格:) –

+0

@ joel.wilson對不起,我意識到這很煩人,我曾在問題中尋求過幫助。謝謝user2100721 – Annemarie

+0

嘿..你能解釋一下你想如何輸出嗎? –

回答

2

你可以這樣做:

df%>% 
    group_by(Record)%>% 
    mutate(diff_peak_t_lc=day[which.max(t)]-day[which.max(l/c)]) 

隨着day[which.max(t)]給您day爲其t正處於鼎盛時期,並day[which.max(l/c)]給您day爲其l/c是在其高峯期。

編輯:關注Paul Hiemstra的建議。

+2

不錯!你甚至可以用'which.max(1/c)'代替'1/c == max(1/c)'。 –

+0

@Haboryme太棒了,那正是我所希望的!非常感謝 – Annemarie