R语言-从数据集中获取顶级结果-排序结果
我把这些数据放在一个平面文件中-R语言-从数据集中获取顶级结果-排序结果,r,many-to-many,time-series,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.da
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)
hm我认为使用by
和with
的简单解决方案应该可以在您的初始数据集上使用
statesBYsales <- c(with(df, by(HasASale, State , sum)))
请阅读SO的一些指南:,和。“询问代码的问题必须表明对正在解决的问题的最低理解。包括尝试的解决方案、为什么它们不起作用以及预期的结果”。谢谢最好转储您的数据(或至少是样本)。您可以使用dput(数据)
获取它。首先,您必须附加数据框才能使用它。所以attach(df)
,然后我假设您的日期是factors(默认值)并且HasASale
等于一,然后使用这个命令unique(df[Date%in%as.factors(seq(as.Date(“2013-01-01”)、as.Date(“2013-01-12”)、“days”))1])
您能解释一下为什么不接受我的答案吗?它完全回答了你原来的问题,你以前也被接受过。对不起,这是偶然的。
datesBYsales <- c(with(df, by(HasASale, Date, sum)))
sort(datesBYsales, decreasing = TRUE)[1:20]