2016-03-28 5 views
1

問題があり、私はあなたの助けが必要です。by_groupとrのx変数の合計

rでグループ化してみると、成功しません。私は何が間違っているのか分かりません。 私はグループ化されたデータフレームを持っています。私は '上「X」と「Y」が「B」 を得るために合計を必要ここ

head(my_data_frame) 
Source: local data frame [6 x 329] 
Groups: x, y [2] 

データフレームの一例

 x  y  a 
     (int) (int) (dbl) 
1 10101101 11  1 
2 10101101 11  1 
3 10101101 11  0 
4 10101101 11  0 
5 10101101 12  1 
6 10101101 12  1 
7 10101101 12  1 
8 10101101 21  1 
9 10101101 21  0 
10 10101101 21  0 

ここで私が使用されるが、成功せずにコードがありますここで

test_df <- my_data_frame %>% 
group_by(x, y) %>% 
mutate(b = sum(a)) 

があると私は必要なものの一例(ただし、上記のコードは、私が必要とするように動作しません)

 x  y  a  b 
     (int) (int) (dbl) (dbl) 
1 10101101 11  1 2 
2 10101101 11  1 2 
3 10101101 11  0 2 
4 10101101 11  0 2 
5 10101101 12  1 3 
6 10101101 12  1 3 
7 10101101 12  1 3 
8 10101101 21  1 1 
9 10101101 21  0 1 
10 10101101 21  0 1 

ありがとうございます!

+1

期待される出力は何ですか?最後のものがあなたの期待通りなら、それは私のために働く。 '%>%dplyr :: mutate(b = sum(a))'を試すことができますか? – akrun

+0

はい、最後です。ありがとう!!!私は 'dplyr :: ...'をコードに追加して動作させます! – AdamsConchallos

答えて

0

mutateplyrdplyrつ以上のパッケージ、すなわちに見出される機能の一つです。したがって、両方のパッケージがロードされた場合、dplyrmutateがのplyrバージョンでマスクされている可能性があります。それを修正するために、我々は使用することができますdplyr::mutate

test_df <- my_data_frame %>% 
        group_by(x, y) %>% 
        dplyr::mutate(b = sum(a)) 
0

集合体は容易にこれを解決する必要があります。

merge(my_data_frame, setNames(aggregate(a ~ x + y, data = my_data_frame, sum), c('x', 'y', 'b')), all.x = TRUE)