2016-05-27 7 views
0

次の手順を1つのステップで実行する方法があるのだろうかと思います。R集計データフレームの合計とカウントを1ステップで

私は二つのカラムを持っていました。一つはユニークではなく、もう一つは数字です。

は私がやった:

sum<-(aggregate(x=df$numbers, by=list(df$char), FUN=sum) 
sum$char <- sum$Group.1 
sum$Group.1 <- NULL 
df <- setDT(df)[, .N, char] 
df <- merge(df,sum,by="char") 

のような単純なものでしょうcastが、一歩を使用するなど、他の方法、が存在することになる場合は疑問に思います。

答えて

2

我々は唯一の要約の出力が必要な場合は、data.table

library(data.table) 
setDT(df)[, c("Sum", "Count") := list(sum(Numbers), .N) , by = char] 

に「文字」でグループ化した後、新しい列に出力を割り当てるために:=を使用しますが、元のデータセットに二つの新しい列を作成する必要がある場合

setDT(df)[, .(Sum = sum(Numbers), Count = .N), by = char] 
関連する問題