R:计算在水平图中使用的频率

时间:2011-09-14 00:05:20

标签: r

我在data.frame中有重复的点序列。我想用水平图绘制它们,并用作x,y的Z频率(例如x = 1的次数y = 2)。我怎样才能做到这一点?好吧,我很容易用SQL语法解释自己:

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

:)

2 个答案:

答案 0 :(得分:2)

这些通过变量定义的组来汇总数据框在R中非常常见。许多* pply函数都可以工作。这些天的标准回复是使用ddply包中的plyr

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

通常,您应该真正了解plyr包以及所有基本*pply函数。

但是如果你对SQL更熟悉,你可以考虑查看sqldf包,它允许你直接用SQL做很多这类数据帧的操作。

答案 1 :(得分:1)

我不怀疑很多人使用plyr函数获得了良好的结果,但这确实是一个问题,可以使用tapplytableave之一轻松回答根据对此结果的未说明的需求。 tapplytable都会生成列联表,这些列表实际上是矩阵或数组,因此非常容易访问。

with( data_frame, table( x , y ) )