月ごとの平均売上高を示す集計関数は正常に機能します。
library(chron)
set.seed(42)
dat <- data.frame(sales = rnorm(1000, mean = 1000, sd = 40),
dates = rep(as.Date(seq(from = 14610, to = 14859),
origin = "1970-01-01"),4))
aggregate(sales~months(as.chron(dates)), mean, data=dat)
...そして次の出力を生成します:
months(as.chron(dates)) sales
1 Jan 1000.0723
2 Feb 999.1580
3 Mar 995.3055
4 Apr 1000.4912
5 May 1003.9703
6 Jun 997.1086
7 Jul 996.5939
8 Aug 998.5012
9 Sep 1001.3709
私の理解では、次のキャストステートメントは同じ出力を生成するはずです。
cast(dat, months(as.chron(dates)) ~ ., mean, value="sales")
ただし、代わりに次のエラーが返されます。
Error: Casting formula contains variables not found in molten data: months(as.chron(dates))
何かが足りない可能性がありますが、キャストステートメント内でchronmonths()呼び出しを使用することは可能ですか?次の2つのステートメントはcast()でも同じことを実現しますが、私は1つのステップでそれを実行し、キャストがどのように機能するかをよりよく理解しようとしています。
dat$mont <- months(as.chron(dat$dates))
cast(dat, mont ~ ., mean, value="sales")
よろしくお願いします、-JT