给我按月平均销售额的聚合函数工作正常。
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 语句应该产生相同的输出:
cast(dat, months(as.chron(dates)) ~ ., mean, value="sales")
而是返回以下错误:
Error: Casting formula contains variables not found in molten data: months(as.chron(dates))
我可能会遗漏一些东西,但是否可以在 cast 语句中使用 chronmonths() 调用?以下两个语句将在 cast() 中完成相同的操作,但我试图一步完成并更好地了解 cast 的工作原理。
dat$mont <- months(as.chron(dat$dates))
cast(dat, mont ~ ., mean, value="sales")
提前致谢,--JT