web-dev-qa-db-ja.com

Rの2列でグループ化する方法

グループ化して2つの列に基づいて合計しようとしているデータフレームがあります。 2つの列は文字で、一方は月でもう一方は変数です。

以下は、データフレームと構造のサンプルです。

#row.names   month    variable   amount
  1          1-Jan       x        1000
  2          1-Jan       x        3000
  3          2-Feb       z        5000
  4          2-Feb       y        3000 

最初にデータをグループ化してから要約しようとしましたが、group_by_()を使ってトリックを行うことはできません。以下は私が試したコードです。

byVarMonth <- group_by_(df, variable, (as.date(month)))

助けてくれてありがとう。

11
Clayton Samples

キャラクター[月]を日付変数として使用することに興味がないようです。私が間違っていないことを考えると、あなたは単にこのようなことをすることができます:

library(dplyr)

tab %>%
  group_by(month, variable) %>%
  summarise(a_sum=sum(amount),
            a_mean=(mean(amount)))

これを取得します:

Source: local data frame [3 x 4]
Groups: month

  month variable a_sum a_mean
1 1-Jan        x  4000   2000
2 2-Feb        y  3000   3000
3 2-Feb        z  5000   5000
14

...または、代わりの構文を使用できます。

summarise(group_by(df, variable), sum(amount), mean(amount))

楽しい。

0
Nowdeen