R语言 - 从数据集中获取最佳结果 - 订购结果

时间:2014-01-07 00:01:26

标签: r many-to-many time-series

我将这些数据放在一个平面文件中 -

State Date HasASale
CA 2013-01-01 1
SC 2013-01-01 1
NY 2013-02-01 1
MN 2013-03-01 1
WA 2013-04-01 1
CA 2013-05-01 1
SC 2013-05-01 1

迄今为止,州是多对多关系。

哪个月的销量最多? 哪个州的销售额最多?

我希望能够绘制结果。

我正在使用R来获取此信息。我能够阅读信息 -

hm <- read.table("states.data", header=T, sep="")
df <- data.frame(hm$Date,hm$States, hm$HasASale)
az <- with(df, zoo(hm.Freq, hm.Date))
df.TS <- aggregate(az, as.yearmon, sum)
df.sts <- aggregate(az, list(h=hm$States), sum)

这给了我聚合。如何通过销售获得前20个州。 或者前20个销售日期?

1 个答案:

答案 0 :(得分:1)

我认为使用bywith的简单解决方案甚至可以在您的起始数据集上运行。

statesBYsales <- c(with(df, by(HasASale, State , sum)))

类似于日期

datesBYsales <- c(with(df, by(HasASale, Date, sum)))

在获得这些向量之后,只需对向量进行排序并打印前20个值。

sort(datesBYsales, decreasing = TRUE)[1:20]