2011-09-14 97 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