1. ホーム
  2. r

[解決済み] 複数の変数をグループごとに集計/要約する(例:合計、平均)。

2022-04-21 08:59:04

質問

データフレームから、簡単に集計する方法はありますか? sum , mean , max et c) 複数の変数を同時に使用しますか?

以下はサンプルデータです。

library(lubridate)
days = 365*2
date = seq(as.Date("2000-01-01"), length = days, by = "day")
year = year(date)
month = month(date)
x1 = cumsum(rnorm(days, 0.05)) 
x2 = cumsum(rnorm(days, 0.05))
df1 = data.frame(date, year, month, x1, x2)

を同時に集計したい。 x1x2 変数から df2 のデータフレームを年別、月別に表示します。 以下のコードでは x1 変数も同時に集計することは可能でしょうか? x2 という変数があります。

### aggregate variables by year month
df2=aggregate(x1 ~ year+month, data=df1, sum, na.rm=TRUE)
head(df2)

解決方法は?

これはどこにあるのでしょうか? year() の関数は?

を使用することもできます。 reshape2 パッケージを使用します。

require(reshape2)
df_melt <- melt(df1, id = c("date", "year", "month"))
dcast(df_melt, year + month ~ variable, sum)
#  year month         x1           x2
1  2000     1  -80.83405 -224.9540159
2  2000     2 -223.76331 -288.2418017
3  2000     3 -188.83930 -481.5601913
4  2000     4 -197.47797 -473.7137420
5  2000     5 -259.07928 -372.4563522