2014-01-07 26 views
0

我有這樣的數據在一個平面文件 -R輸入語言 - 獲取從數據機頂盒結果 - 訂單結果

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

請閱讀一些準則SO:[** **這裏(http://stackoverflow.com/help/on-topic),[** **這裏(HTTP:// meta.stackexchange.com/questions/156810/stack-overflow-question-checklist)和[** here **](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r -reproducible-示例/ 5963610#5963610)。 「詢問代碼的問題必須對所解決的問題有一個最基本的理解,包括嘗試的解決方案,爲什麼他們不工作,以及預期的結果。」謝謝! – Henrik

+0

你的數據轉儲(或至少是樣本)將是可取的。你可以用'dput(data)' – user974514

回答

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] 
+1

得到它首先,你必須附加你的數據幀才能使用它。所以'attach(df)',那麼我假設你的日期是因素(默認),'HasASale'等於1,然後使用這個命令'unique(df [Date%in%as.factor(seq(as.Date (「2013-01-01」),as.Date(「2013-01-12」),「days」)),1])' – user974514

+0

你能解釋爲什麼你沒有接受我的答案嗎?它完全回答你原來的問題,你之前就接受過它。 – user974514

+0

對不起,這是偶然的。 – Harpreet