2017-05-15 9 views
0

필자는 일련의 열로 그룹화 된 데이터 프레임을 보유하고 있습니다. 배관이 할 수있는 방법이 있나요데이터 프레임의 하위 집합에서 행을 조작하는 가장 좋은 방법은 무엇입니까?

df.grouped[i, C_difference] <- df.grouped[ i, C] - df.grouped[ i-1 , C] 
df.grouped[0, C_difference] <- NULL 

, 또는 반복하여 내가 그것을 수행

df.grouped<- df%>% 
       group_by(A) 

는 이제 열 C (숫자)의 값에 대한 몇 가지 계산을 수행 할 A와 B의 모든 값에 대해? DF %> % GROUP_BY (A) %> % -

for(A in unique(df$A)){ 
    for(B in unique(df$B)){ 

    (execute code) 

    } 
} 

DF

# A B 
# x 1 
# x 3 
# x 5 
# y 7 
# y 6 
# x 2 

그룹 A 열에 의해 열 B 의해 순서 <를 df.grouped 배열 (B)

결과는 데이터 fr ame is ordered :

# A B C 
# x 1 NA 
# x 2 1 
# x 3 1 
# x 5 2 
# y 6 NA 
# y 7 1 
+1

작은 재현 가능한 예와 예상 출력을 표시하십시오 – akrun

+0

당신은'mutate' 호출 (파이프에 추가 할 수 있음) –

답변

1

dplyr을 사용하면 다음과 같은 작업을 수행 할 수 있습니다.

df.grouped<- df %>% 
      group_by(A, B) %>% 
      mutate(C_difference = C - lag(C)) 
관련 문제