2016-11-29 1 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

당신은 할 수 : day[which.max(t)]

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

t가 절정에있는 day하는 당신에게주고 day[which.max(l/c)] 당신에게 l/c의 절정에있는에 대한 day을 제공합니다.

편집 : Paul Hiemstra 님의 제안을 따르십시오.

+2

니스! '1/c == max (1/c)'를'which.max (1/c)'로 대체 할 수도 있습니다. –

+0

@Haboryme 환상적입니다, 그것이 내가 바라는 바였습니다! 매우 감사합니다 – Annemarie

관련 문제