2017-05-15 17 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のすべての値に対して?

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 - DF%>% GROUP_BY(A)%>% アレンジ(B)

結果は、データfr ameは次の順序で表示されます:

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

あなたは(あなたがパイプに追加することができます) 'mutate'コールの内側にそれを行う – akrun

+0

小さな再現性の例と期待される出力を示してください。 –

答えて

1

dplyrを使用すると、このようなことができるはずです。

df.grouped<- df %>% 
      group_by(A, B) %>% 
      mutate(C_difference = C - lag(C)) 
関連する問題