我将这些数据放在一个平面文件中 -
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个销售日期?
答案 0 :(得分:1)
我认为使用by
和with
的简单解决方案甚至可以在您的起始数据集上运行。
statesBYsales <- c(with(df, by(HasASale, State , sum)))
类似于日期
datesBYsales <- c(with(df, by(HasASale, Date, sum)))
在获得这些向量之后,只需对向量进行排序并打印前20个值。
sort(datesBYsales, decreasing = TRUE)[1:20]