2016-12-09 31 views
0

A列の数値に基づいてB列の数値を合計します。 例えば:異なる列のRの条件付き合計

カラムA:年2001年2002年2002年2002年2003年2003

列B:1 2 3 4 5 6

私はA.私に基づいてBを合計列Cを追加します所望の結果は次のとおり

カラムA:2002 2003 2003 2001 2002 2002

カラムB:1 2 3 4 5 6

カラムC:1~9(2+ 3 + 4)9 9 11 11

私は多くの検索をしましたが、どこから手をつけてもらえませんでした。

+0

これまでに試したことはありますか? –

答えて

0

私たちは、効率的なオプションがdata.table

ある base R

df1$C <- with(df1, ave(B, A, FUN = sum)) 

から ''

library(dplyr) 
df1 %>% 
    group_by(A) %>% 
    mutate(C= sum(B)) 

それともaveとのことでグループ化した後dplyrからmutateを使用することができます

library(data.table) 
setDT(df1)[, C := sum(B), by = A] 
+0

もう1つ質問がありますか? 2つの基準がある場合は、最初にAに基づいてC列を追加し、Dに基づいてライブラリ(dplyr)を試しました df1%>%group_by(A)、group_by(D)%>%mutate(C = sum(B))、group_by(D)を多くの場所に配置しましたが、うまくいきませんでした。 – Amy

+0

@Amy 2つの基準は2つの列を意味しますか?その場合、 'df1%>%group_by(A、someothercolumn)%>%mutate(C = sum(B))' – akrun

+0

@Amyコメントありがとうございます。 [ここ](http://stackoverflow.com/help/someone-answers)にチェックを入れることもできます。 – akrun