2011-09-14 192 views
1

使用I具有與複製一個data.frame點系列。我想使用電平曲線圖繪製它們,並作爲X,Y的Z頻率使用(例如,在多少次對於x = 1存在爲y = 2)。我怎樣才能做到這一點?那麼它是容易的,我與SQL語法解釋一下:R:計數頻率在levelplot

SELECT x, y, count(*) from data_frame GROUP BY x, y 

:)

回答

2

這類由變量定義的組彙總的數據幀是很常見的R.許多* pply功能會工作。這些天的標準反應是使用ddplyplyr包:

ddply(data_frame,.(x,y),summarise,total = NROW(piece)) 

在一般情況下,你真的應該學習plyr包,所有的基礎*pply功能一起。

但是,如果您更熟悉SQL,則可以考慮查看sqldf軟件包,該軟件包允許您直接使用SQL對數據框進行大量這類操作。

+0

的感謝! sqldf看起來很有趣,但我會給一個嘗試plyr包 – mkk

1

我不懷疑,很多人獲得與plyr功能良好的效果,但是這確實是一個很容易與根據此結果的未說明需求tapply一個,table,或ave回答的問題。無論tapplytable會產生哪些是真正的矩陣或陣列,因此很容易進入應急表。

with(data_frame, table(x , y)) 
+0

是很容易使用的levelplot()的resul? – mkk

+0

@mkk。我當然願意嘗試,但需要更多細節。 'levelplot'只是普通的R和Sarkar一致努力使他的代碼「常規」。 –

+0

謝謝!我會嘗試你的方法,一旦我回到這一點,因爲以前的解決方案工作pefectly卻沒有關於我的大數據集 - 5分鐘是不夠的,生成新的數據幀,我希望您的解決方案能更好地伸縮:) – mkk